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

  • iphone13屏幕分辨率(iphone13屏幕分辨率ppi)

    iphone13屏幕分辨率(iphone13屏幕分辨率ppi)

  • 腾讯视频vip和超级会员有什么不同(腾讯视频vip和超级影视Svip)

    腾讯视频vip和超级会员有什么不同(腾讯视频vip和超级影视Svip)

  • iphone12是双扬声器吗(苹果12是双扬声器嘛)

    iphone12是双扬声器吗(苹果12是双扬声器嘛)

  • 荣耀30s和华为p30的对比(荣耀30s和华为p30pro充电器一样吗)

    荣耀30s和华为p30的对比(荣耀30s和华为p30pro充电器一样吗)

  • 小米卡怎么充话费(小米卡怎么充话费充值中心)

    小米卡怎么充话费(小米卡怎么充话费充值中心)

  • 三星s6打不进电话是怎么回事(三星s6不开机充电不开机)

    三星s6打不进电话是怎么回事(三星s6不开机充电不开机)

  • 苹果怎么用流量更新大于200m的软件(苹果怎么用流量卡)

    苹果怎么用流量更新大于200m的软件(苹果怎么用流量卡)

  • 电脑修改时间怎么修改(电脑修改时间怎么锁定)

    电脑修改时间怎么修改(电脑修改时间怎么锁定)

  • 等待验证是什么意思(等待验证变成添加怎么回事)

    等待验证是什么意思(等待验证变成添加怎么回事)

  • 1688商家入驻条件(1688入驻条件费用2020)

    1688商家入驻条件(1688入驻条件费用2020)

  • 支付宝邮箱注册为什么一直在显示提交信息(支付宝邮箱注册官网)

    支付宝邮箱注册为什么一直在显示提交信息(支付宝邮箱注册官网)

  • b站视频能下载吗(b站视频能下载到桌面吗)

    b站视频能下载吗(b站视频能下载到桌面吗)

  • 计算机的操作系统是(计算机的操作系统有哪些功能)

    计算机的操作系统是(计算机的操作系统有哪些功能)

  • iqoo为什么没有显示闪充(iqoo为什么没有2和4)

    iqoo为什么没有显示闪充(iqoo为什么没有2和4)

  • 华为手机怎么退出盲人模式怎么解除(华为手机怎么退出屏幕朗读模式)

    华为手机怎么退出盲人模式怎么解除(华为手机怎么退出屏幕朗读模式)

  • 苹果11安兔兔跑分多少(iphone11安兔兔能跑多少分)

    苹果11安兔兔跑分多少(iphone11安兔兔能跑多少分)

  • 一个手机号可以注册几个快手(一个手机号可以注册几个支付宝)

    一个手机号可以注册几个快手(一个手机号可以注册几个支付宝)

  • 买家账号降权能恢复吗(买家账号降权能找回吗)

    买家账号降权能恢复吗(买家账号降权能找回吗)

  • vue怎么加视频同步字幕

    vue怎么加视频同步字幕

  • 手机粘贴不了怎么回事(手机没办法粘贴)

    手机粘贴不了怎么回事(手机没办法粘贴)

  • 如何下载直播视频(如何下载直播视频软件到手机)

    如何下载直播视频(如何下载直播视频软件到手机)

  • WPS重用幻灯片在哪(wps2019重用幻灯片在哪)

    WPS重用幻灯片在哪(wps2019重用幻灯片在哪)

  • 抖音魔法特效怎么拍(抖音魔法特效怎么固定住)

    抖音魔法特效怎么拍(抖音魔法特效怎么固定住)

  • 苹果平板怎么下载应用(苹果平板怎么下载爱思助手)

    苹果平板怎么下载应用(苹果平板怎么下载爱思助手)

  • vivo屏保广告如何取消(vivo手机屏保广告怎么关闭)

    vivo屏保广告如何取消(vivo手机屏保广告怎么关闭)

  • 快手卸载了怎么恢复本地作品(快手卸载了怎么找回来)

    快手卸载了怎么恢复本地作品(快手卸载了怎么找回来)

  • tcpdump命令  监听网络流量(tcpdump 监听指定端口)

    tcpdump命令 监听网络流量(tcpdump 监听指定端口)

  • phpcms怎么判断是否有图片(php判断https)

    phpcms怎么判断是否有图片(php判断https)

  • 付款方和发票抬头不一致如何账务处理
  • 金税四期正式启动
  • 预付账款需要纳税申报吗
  • 租赁企业可以开具电费发票吗
  • 增值税免缴
  • 增值税负数发票可以作废吗?
  • 企业应收票据贴现给银行所获得的现金计入现金流量表
  • 先征后返的所得税账务处理
  • 境外企业国内签订合同如何缴纳印花税?
  • 报无票收入又开发票了怎么办?
  • 个人所得税免征项目有哪些
  • 2021虚开发票案例
  • 集团企业涉税需求网络
  • 查账征收的成本费用
  • 非直系亲属继承房产后再卖掉后交税吗
  • 分公司收到总公司拨款怎么做分录
  • 银行支票怎么用
  • 在建工程二级科目待摊支出
  • 服务公司收到服务费发票怎么做账
  • 分公司打货款怎么做账
  • 如何养成良好的安全行为
  • hppusg.exe是什么进程
  • 电脑显卡排行榜
  • 税收返还需要缴纳什么税
  • 气泡星云图片
  • laravel视频教程
  • 什么是实际成本计价
  • Laravel 5.4向IoC容器中添加自定义类的方法示例
  • php中\n
  • 动静结合会计等式的不会重复算利润吗
  • 微信网页授权管理在哪里
  • python @time
  • 帝国cms中英
  • 年报和汇算清缴不一致怎么处理
  • MySQL常用命令关键字
  • 公司有收入可以做零申报吗
  • 无票收入后又开票怎么办
  • 个人代工程发票要缴纳的个税
  • 差旅费报销范文
  • 制造费用属于哪一类会计科目
  • 系统带我玩隐形守护者 小说
  • 国家税务总局公告2011年第25号公告
  • 发票税率怎么改成3%
  • 子公司注销合并报表少数股东权益的处理
  • 扫码开票怎么弄
  • 公司对员工的罚款用途
  • 预收账款的账务处理怎么对企业有利
  • 当月财务费用怎么算
  • 商贸企业涉税问题
  • 房地产企业的企业所得税是多少
  • 退回的企业所得税计入什么科目
  • 流动比率和速动比率过高说明什么
  • ubuntu系统怎么用
  • mac os怎么删除用户
  • win8电脑定时关机怎么设置方法
  • msedge.exe是什么
  • 苹果电脑连不上网络但是wifi正常
  • linux sleep命令有什么用
  • win10插上耳机后电脑还是外放如何解决
  • combobox jsp
  • css怎么画
  • 关于我和鬼变成家人的那件事
  • 解决胃胀气最快方法
  • jQuery Validate 数组 全部验证问题
  • 递归怎么调用
  • uiview继承哪个类
  • node.js底层原理
  • javascript面向对象编程 PDF
  • android:excludeFromRecents="true"
  • 分页jsp
  • iframe隐藏页面内容
  • python处理文本文件代码优化
  • android sdk使用教程
  • 前端闭包函数
  • js模拟点击事件onclick
  • 江西省税务局官网查询系统
  • 苏州税务中心
  • 经营数据分析需要学什么
  • 坡面台阶
  • 云南省2021年退休金计发基数
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设