位置: IT常识 - 正文

【node进阶】浅析Koa框架---ejs模板|文件上传|操作mongoDB(node教程)

编辑:rootadmin
【node进阶】浅析Koa框架---ejs模板|文件上传|操作mongoDB

推荐整理分享【node进阶】浅析Koa框架---ejs模板|文件上传|操作mongoDB(node教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node入门教程,node教程,node _,nodejs进阶,nodejs进阶,node实战,node 入门,node入门教程,内容如对您有帮助,希望把文章链接给更多的朋友!

✅ 作者简介:一名普通本科大三的学生,致力于提高前端开发能力 ✨ 个人主页:前端小白在前进的主页 🔥 系列专栏 : node.js学习专栏 ⭐️ 个人社区 : 个人交流社区 🍀 学习格言: ☀️ 打不倒你的会使你更强!☀️ 💯 刷题网站:这段时间有许多的小伙伴在问有没有什么好的刷题网站,博主在这里给大家推荐一款刷题网站:👉点击访问牛客网👈牛客网支持多种编程语言的学习,各大互联网大厂面试真题,从基础到拔高,快来体验一下吧!

🔥前言

koa框架中的ejs模板使用方式与express并无差距,文件上传、操作mongoDB也并没有很多不一样的东西,本篇文章更着重于代码,ejs模板在文章express应用程序生成器中已经做了讲解,文件上传在文章Express+Multer+Postman模拟文件上传功能中也做了讲解,node连接mongoDB暂时还没出文章,这里的话先给大家说一下怎么去操作mongoDB,后续会出文章补充mongoDB和MYSQL。

📃目录ejs模板上传文件操作mongoDB小结ejs模板

安装koa-views中间件

npm install --save koa-views

koa-views 是一个视图管理模块,它的灵活度很高,支持很多的模版引擎,这里我们给它配置的引擎是 ejs。

安装ejs模板引擎

npm install --save ejs

文件目录

├── package.json ├── index.js(入口文件) └── view(视图管理文件夹) ------└── index.ejs(ejs模板页面)

index.js(入口文件)

const Koa = require('koa')const views = require('koa-views')const path = require('path')const app = new Koa()// 加载模板引擎app.use(views(path.join(__dirname, './view'), { extension: 'ejs'}))app.use( async ( ctx ) => { let title = 'hello koa2' await ctx.render('index', { title, })})app.listen(3000)

index.ejs 模板页面

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <h1>home模板页面</h1> <div>欢迎使用<%= title%></div></body></html>【node进阶】浅析Koa框架---ejs模板|文件上传|操作mongoDB(node教程)

最终效果

上传文件

安装@koa/multer multer

npm install --save @koa/multer multer

在这里很多人感到不解,为什么安装了@koa-multer中间件后还要安装multer,这是因为@koa/multer中间件是依赖于multer而创建的,所以必须要下载multer

上传页面代码

<form action="/upload" method="POST" enctype="multipart/form-data"> <div> 头像:<input type="file" name="avatar"> </div> <div> <input type="submit" value="提交"> </div> </form>

关键逻辑代码

const multer = require('@koa/multer');//自动在public目录下生成文件夹uploads,在这里存储图片const upload = multer({ dest: 'public/uploads/' })//路由代码router.post("/upload",upload.single('avatar'),(ctx,next)=>{ console.log(ctx.request.body,ctx.file) ctx.body={ ok:1, info:"add user success" }})

我们点击提交按钮后,图片的存放路径就给出来了,我们可以在public/uploads中找到我们上传的图片. (谨记:我们得到的图片是没有后缀名的,如果想要在网页中打开图片,必须要自定义存储引擎!)

操作mongoDB

虽然在之前的文章中没有涉及到数据库,是因为考虑到想把mongoDB和MYSQL两种数据库连着出文章,便于大家去做一个对比,在本文中就先简单的让大家明白koa怎么连接mongoDB。

文件目录

├── package.json ├── index.js(入口文件) └── config ------└── db.config.js(数据库配置文件) └──model ------└── UserModel.js(数据库模型文件)

安装mongoose模块

npm i mongoose

db.config.js(数据库配置文件)

//连接数据库const mongoose = require("mongoose")mongoose.connect("mongodb://127.0.0.1:27017/lzq_koa")//插入集合和数据,数据库lzq_koa会自动创建

UserModel.js(数据库模型文件)

const mongoose = require("mongoose")const Schema = mongoose.Schemaconst UserType = { username:String, password:String, age:Number, avatar:String}const UserModel = mongoose.model("user",new Schema(UserType))// 模型user 将会对应 users 集合, module.exports = UserModel小结

这篇文章最不合理的地方在于之前没有出在node中学习简单的mongoDB操作的文章,就会导致本篇的操作mongoDB小节中大家可迷,但是希望大家谅解一下,主要是想把数据库在node学习专栏中最后去出,希望各位可以体谅一下!koa框架中只少了最后一个模块没出了,它就是身份认证,下篇文章会给大家奉上的!

本文链接地址:https://www.jiuchutong.com/zhishi/299198.html 转载请保留说明!

上一篇:Sklearn GridSearchCV跑SVM很慢或卡死解决办法,SVM线性核函数卡死

下一篇:vue 遍历数组(vue遍历数组)

  • iqoo8双击亮屏在哪设置(iqooz1双击亮屏)

    iqoo8双击亮屏在哪设置(iqooz1双击亮屏)

  • 小米如何关闭只在wlan下下载(小米如何关闭只读功能)

    小米如何关闭只在wlan下下载(小米如何关闭只读功能)

  • 为什么苹果11现在不能激活(为什么苹果11现在还有卖)

    为什么苹果11现在不能激活(为什么苹果11现在还有卖)

  • 滴滴出行钱包怎么充值(滴滴出行钱包怎么自动销户了)

    滴滴出行钱包怎么充值(滴滴出行钱包怎么自动销户了)

  • 移动15元机顶盒能取消吗(移动15元机顶盒能投屏吗)

    移动15元机顶盒能取消吗(移动15元机顶盒能投屏吗)

  • 微信被投诉封号怎么解封(微信被投诉封号怎么知道是谁投诉的2020年)

    微信被投诉封号怎么解封(微信被投诉封号怎么知道是谁投诉的2020年)

  • 删除并退出的群还在吗(删除并退出的群聊天记录怎么恢复)

    删除并退出的群还在吗(删除并退出的群聊天记录怎么恢复)

  • 优酷快进震动怎么关闭(优酷视频快进的时候震动怎么关闭)

    优酷快进震动怎么关闭(优酷视频快进的时候震动怎么关闭)

  • 手机网络不太顺畅是怎么回事(手机网络不太顺畅请检查是什么意思)

    手机网络不太顺畅是怎么回事(手机网络不太顺畅请检查是什么意思)

  • 为什么手机壁纸换不了总是黑色(为什么手机壁纸突然变成黑色)

    为什么手机壁纸换不了总是黑色(为什么手机壁纸突然变成黑色)

  • 手机拍视频模糊怎么回事(手机拍视频模糊不清,怎么才能弄好?)

    手机拍视频模糊怎么回事(手机拍视频模糊不清,怎么才能弄好?)

  • 华为平板能插内存卡吗(华为平板插内存卡怎么使用)

    华为平板能插内存卡吗(华为平板插内存卡怎么使用)

  • 手机有紫外线灯吗(手机紫外灯光)

    手机有紫外线灯吗(手机紫外灯光)

  • vivo手机热点资讯怎么关闭步骤(vivo手机热点资讯锁屏怎么关闭)

    vivo手机热点资讯怎么关闭步骤(vivo手机热点资讯锁屏怎么关闭)

  • 图片打码怎么去掉(图片打码怎么去掉美图秀秀)

    图片打码怎么去掉(图片打码怎么去掉美图秀秀)

  • 苹果7微信视频设置美颜(苹果7微信视频美颜怎么设置方法)

    苹果7微信视频设置美颜(苹果7微信视频美颜怎么设置方法)

  • 电脑开机桌面没有图标(电脑开机桌面没反应怎么办)

    电脑开机桌面没有图标(电脑开机桌面没反应怎么办)

  • 笔记本电脑连接wifi显示黄叹号(笔记本电脑连接打印机怎么连接)

    笔记本电脑连接wifi显示黄叹号(笔记本电脑连接打印机怎么连接)

  • 电脑网页密码不能保存怎么办?(电脑网页密码不正确)

    电脑网页密码不能保存怎么办?(电脑网页密码不正确)

  • 前端解决跨域问题(9个方法)(前端解决跨域问题的代理)

    前端解决跨域问题(9个方法)(前端解决跨域问题的代理)

  • 织梦DEDECMS关于提交表单“数据校验不对”的解决办法(织梦设置的关键词看不到)

    织梦DEDECMS关于提交表单“数据校验不对”的解决办法(织梦设置的关键词看不到)

  • 增值税发票认证平台进不去什么原因
  • 劳务清包违法吗?
  • 税收职能和作用
  • 房租押金没退款怎么起诉
  • 个人所得税6月底没有退怎办
  • 国际机票可以抵扣进项税吗
  • 其他流动资产对应科目
  • 已付的账款叫什么
  • 取得失控发票
  • 分配股利需要缴纳个税吗
  • 超限量领购发票审批通过后
  • 收取职工房租 算收入吗
  • 一般纳税人可以开3%的发票吗
  • 开普票可以抵扣进项票
  • 待解报预算收入扣款怎么做账
  • 委托加工费的增值税计入成本吗
  • 发票进项抵扣有什么用
  • 服务类的公司有哪些
  • 研发费用入账
  • 企业会计准则制度
  • 包工包料装修
  • 预提返利的会计处理
  • 所得税申报怎么弥补以前年度亏损
  • 公司注销登记提交材料规范
  • 在win10中怎么从edge旧ie浏览器
  • php框架基础教程
  • mysql的字段类型有哪些
  • 如何修复win11系统
  • 员工福利费账务处理
  • php数组转js数组
  • php __destruct
  • 有趣的css代码
  • php @method
  • 有关五险一金的知识
  • 营改增后预交增值税
  • 销售方红字发票的账务处理?
  • laravel入门与实战:构建主流php应用开发框架
  • 银行承兑汇票背书什么意思
  • 三维重建的主要步骤
  • aws documentation
  • 财政零余额账户存款
  • 购买黄金会计分录怎么写
  • Testing Applications with WebTest¶
  • 建筑垃圾处置费 南通
  • mongodb修改数据库名称
  • 增值税的账务处理怎么做
  • 投资收益属于营业外收入吗为什么
  • 企业出售自用房产开具增值税
  • 上期留底增值税什么意思
  • 现金流量表和其他报表的勾稽关系
  • 投标保证金分为几种
  • 主营业务成本可以直接贷银行存款吗
  • 损益平准金是什么会计科目
  • 美容行业如何做好管理工作
  • 代理记账公司都是假账么
  • 怎样计算加班工资?
  • 自动备份mssql server数据库并压缩的批处理脚本
  • xp系统net framework 3.5
  • linux使用pip
  • centos7如何设置中文
  • mac如何整理桌面图标
  • 如何关闭windows密钥
  • win7系统的安装
  • win8安全和维护在哪
  • windows10version20h2的03
  • 遮罩层在上还是在下
  • Append、Debug、Diskcomp命令的使用说明
  • 贴吧热门评论
  • Python Flask-web表单使用详解
  • cocos2d用什么语言开发游戏
  • jquery 插件写法
  • 利用JQuery实现datatables插件的增加和删除行功能
  • 抛物线动画演示视频
  • 用js设置颜色
  • unity坐标系转换
  • 广东省电子税务局官网登录入口
  • 如何践行中国精神论文
  • 江苏高速通行费标准
  • 图像信息采集照片
  • 查册证明怎么自动生成
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设