位置: 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遍历数组)

  • 红米k50至尊版怎么设置24小时(红米k50至尊版怎么录屏)

    红米k50至尊版怎么设置24小时(红米k50至尊版怎么录屏)

  • 网易邮箱修改密码在哪里(网易邮箱修改密码后还是无法登陆)

    网易邮箱修改密码在哪里(网易邮箱修改密码后还是无法登陆)

  • 魅族18支持的4G网络有哪些(魅族18支持的有线耳机有哪些)

    魅族18支持的4G网络有哪些(魅族18支持的有线耳机有哪些)

  • 华为荣耀20青春版充电时间(华为荣耀20青春版换屏幕教程)

    华为荣耀20青春版充电时间(华为荣耀20青春版换屏幕教程)

  • OPPO手机修改APP图标(oppo手机修改app名字)

    OPPO手机修改APP图标(oppo手机修改app名字)

  • 佳能6018硒鼓型号(佳能6018l硒鼓与哪个硒鼓兼容)

    佳能6018硒鼓型号(佳能6018l硒鼓与哪个硒鼓兼容)

  • oppo手机美颜怎么开(oppo手机美颜怎么红脸蛋)

    oppo手机美颜怎么开(oppo手机美颜怎么红脸蛋)

  • 笔记本电脑自动右键怎么解决(笔记本电脑自动修复不了开不了机怎么办)

    笔记本电脑自动右键怎么解决(笔记本电脑自动修复不了开不了机怎么办)

  • vr设备是什么意思(vr设备介绍及用法)

    vr设备是什么意思(vr设备介绍及用法)

  • 抖音显示已封禁什么时候能解封(抖音显示封禁是什么原因)

    抖音显示已封禁什么时候能解封(抖音显示封禁是什么原因)

  • 手机双清和恢复出厂设置有什么区别(手机双清和恢复出厂设置)

    手机双清和恢复出厂设置有什么区别(手机双清和恢复出厂设置)

  • 表格不能打字怎么回事(表格内打不了字)

    表格不能打字怎么回事(表格内打不了字)

  • 微信扫二维码模糊不清(微信扫二维码模糊是怎么回事)

    微信扫二维码模糊不清(微信扫二维码模糊是怎么回事)

  • ipad能扩展内存吗(ipad扩展内存怎么分辨)

    ipad能扩展内存吗(ipad扩展内存怎么分辨)

  • ps卡顿是什么原因(ps卡顿是什么原因引起的)

    ps卡顿是什么原因(ps卡顿是什么原因引起的)

  • 华为jkm一al00是什么型号(华为jkm-al00是什么)

    华为jkm一al00是什么型号(华为jkm-al00是什么)

  • 跨境支付几种方式(跨境支付有哪三种模式)

    跨境支付几种方式(跨境支付有哪三种模式)

  • 手机360怎么拦截广告(手机360怎么拦截广告弹窗)

    手机360怎么拦截广告(手机360怎么拦截广告弹窗)

  • ios13都有什么新功能(ios13的手机有哪些)

    ios13都有什么新功能(ios13的手机有哪些)

  • 小米9pro能不能用4g卡(小米9pro能不能root)

    小米9pro能不能用4g卡(小米9pro能不能root)

  • 抖音视频如何删除作品(抖音视频如何删除掉)

    抖音视频如何删除作品(抖音视频如何删除掉)

  • 三星a60怎样截屏(三星a60手机怎么截长图)

    三星a60怎样截屏(三星a60手机怎么截长图)

  • 朋友圈看不了怎么回事(朋友圈看不了怎么整)

    朋友圈看不了怎么回事(朋友圈看不了怎么整)

  • 华为怎么升级9.1(华为怎么升级app)

    华为怎么升级9.1(华为怎么升级app)

  • 三星knox怎么用(三星knox怎么看knox状态)

    三星knox怎么用(三星knox怎么看knox状态)

  • 视频加图片怎么做的(视频加图片怎么弄)

    视频加图片怎么做的(视频加图片怎么弄)

  • 小微企业所得税税率2023年最新税率表
  • 工厂道路设计图
  • 减少实收资本需要缴纳什么税
  • 税控服务费减免税款分录
  • 已认证红冲需要退回发票吗
  • 营改增对小规模的影响
  • 机票报销需要什么单据
  • 京东预付定金是什么意思
  • 主营业务成本属于
  • 收到其他银行划回的款项属于什么科目
  • 结转应交所得税属于利润分配吗
  • 发工资时计提个人所得税
  • 为什么要开增值税
  • 没有成本票如何做账
  • 矿产资源税是多少
  • 存货的核算心得体会
  • 年终奖个税公式 2022
  • 石油天然气用途
  • 废品损失涉及的税种
  • mac的pdf怎么转换成word
  • 主板bios在线升级
  • 真实有效的18岁身份证
  • 华为鸿蒙harmonyos刷机
  • php生成文件流
  • 如何使用linux服务器
  • gnaupdaemon.exe是什么
  • php比较两个字符串
  • vue如何预加载图片
  • js表单验证代码
  • 开具增值税专用发票的要求
  • 待处理流动资产净损失
  • 回顾2021年作文
  • pgrep命令作用及含义
  • python 捕捉窗口
  • 计入固定资产的条件
  • 申报完清卡是什么意思
  • 实收资本退回给股东需要交印花税吗
  • 当月销售次月开票就按次月申报
  • python合并集合
  • 主营业务收入登记明细账簿范本
  • mysql好在哪里
  • 管理费用的核算内容主要包括哪些
  • 发工资是用借记卡还是储蓄卡
  • 个人独资企业的特点
  • 借调是原单位发工资吗
  • 劳务外包人员算从业人员期末人数么
  • 认证发票抵扣有留抵税怎么做分录
  • 固定资产的处理属于日常业务的处理
  • 核销单取消后出口收汇流程
  • 质保期内出现质量问题,一直没有修复
  • 发票已认证次月退回
  • 企业增值税额
  • 资产负债表月报的期初余额填什么
  • 待认证进项税额期末怎么办
  • 工厂加工费的账务怎么做
  • 销售怎么写啊
  • 债务人以低于债务账面价值的现金清偿某项债务
  • mysql转移表数据表
  • sql server 2000中的安全性包含
  • 更新最新版win11,任务栏不见了
  • Win7系统重装后开不了机
  • linux终端怎么运行
  • win8.1系统没有wifi怎么办
  • win8系统怎么创建局域网
  • 电脑卡 硬盘100%
  • w7系统怎么扫描
  • linux 防火墙原理
  • Extjs4 GridPanel 的几种样式使用介绍
  • 使用jquery操作dom
  • java4Android(15)处理流的使用示例、装饰者设计模式、节点流和处理流的关系
  • JavaScript SweetAlert插件实现超酷消息警告框
  • js中倒计时器怎么实现
  • python中的格式化输出用法总结
  • python convexhull
  • 重庆电子税务局网页版登录
  • 上海市国家税务局
  • 工会经费填错了怎么办
  • 不予处理的法律依据
  • 江西发票税率
  • 未开票收入下月开票会计分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设