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

  • airpods耳机丢了怎么找(airpods耳机丢了一只怎么找)

    airpods耳机丢了怎么找(airpods耳机丢了一只怎么找)

  • iPhone 12系列有哪些款(苹果12系列都有啥)

    iPhone 12系列有哪些款(苹果12系列都有啥)

  • 抖音如果被对方拉黑还能搜索到她吗(抖音如果被对方拉黑怎么办)

    抖音如果被对方拉黑还能搜索到她吗(抖音如果被对方拉黑怎么办)

  • 苹果微信好友突然全没了(苹果微信好友突然消失了)

    苹果微信好友突然全没了(苹果微信好友突然消失了)

  • 华为手机左上角有个手掌什么意思(华为手机左上角时间怎么关闭)

    华为手机左上角有个手掌什么意思(华为手机左上角时间怎么关闭)

  • Internet 上使用的基本服务有哪些(internet的运用)

    Internet 上使用的基本服务有哪些(internet的运用)

  • 朋友圈发不出去照片怎么回事(为什么朋友圈发不出去)

    朋友圈发不出去照片怎么回事(为什么朋友圈发不出去)

  • 手机亮度调节器失灵了怎么办(手机亮度调节器破解版)

    手机亮度调节器失灵了怎么办(手机亮度调节器破解版)

  • oppoa31是全网通吗(oppoa32全网通)

    oppoa31是全网通吗(oppoa32全网通)

  • iPhonexr屏幕有轻微的黑线(iphonexr屏幕有一块特别亮)

    iPhonexr屏幕有轻微的黑线(iphonexr屏幕有一块特别亮)

  • qq电脑截屏快捷键(qq电脑截屏快捷键是什么)

    qq电脑截屏快捷键(qq电脑截屏快捷键是什么)

  • ps调色预设怎么导入(ps调色预设怎么批量导入xmp)

    ps调色预设怎么导入(ps调色预设怎么批量导入xmp)

  • 快手视频怎么保存到手机(快手视频怎么保存到相册不显示快手)

    快手视频怎么保存到手机(快手视频怎么保存到相册不显示快手)

  • iphonexsmax上市时间(iphonexsmax上市时间价格)

    iphonexsmax上市时间(iphonexsmax上市时间价格)

  • 魅族16th机身尺寸(魅族16t机身长度)

    魅族16th机身尺寸(魅族16t机身长度)

  • 手机qq聊天怎么下一行(手机QQ聊天怎么发图片)

    手机qq聊天怎么下一行(手机QQ聊天怎么发图片)

  • 一般情况下裸机是指(所谓裸机 是指)

    一般情况下裸机是指(所谓裸机 是指)

  • 幻灯片图片怎么一个个出来(幻灯片图片怎么设置透明色)

    幻灯片图片怎么一个个出来(幻灯片图片怎么设置透明色)

  • 平板能下载ps吗(平板上可以下载ps吗)

    平板能下载ps吗(平板上可以下载ps吗)

  • 显示器后面acin什么意思(显示器后面两个接口区别)

    显示器后面acin什么意思(显示器后面两个接口区别)

  • 来电充电宝最迟多久还(来电充电宝最迟多久充满)

    来电充电宝最迟多久还(来电充电宝最迟多久充满)

  • 支付宝充话费显示暂不支持此号码(支付宝充话费显示备货中)

    支付宝充话费显示暂不支持此号码(支付宝充话费显示备货中)

  • 微信怎么群发标签好友(微信怎么群发标签里面的所有人)

    微信怎么群发标签好友(微信怎么群发标签里面的所有人)

  • 手机运行内存怎么查看(手机运行内存怎么选)

    手机运行内存怎么查看(手机运行内存怎么选)

  • 座机一键拨号设置方法(座机一键拨号设置方法图解)

    座机一键拨号设置方法(座机一键拨号设置方法图解)

  • 疫情期间公司买水
  • 用友u8固定资产折旧怎么生成凭证
  • 减免企业所得税怎么算
  • 如何在电子税务局开具全电发票
  • 金税盘递减税款2022
  • 认缴制投资方的账务处理
  • 事业单位固定资产管理办法
  • 专项附加扣除项目的6项具体规定有哪些
  • 外地预交的附加税金在申报的时候怎么填
  • 污水处理企业如何捕捉碳中和减少了的碳足迹
  • 什么样的情况可以补缴社保
  • 股东分红利息
  • 融资租入固定资产属于资产吗
  • 预付款什么时候确认收入
  • 不动产经营租赁属于现代服务吗
  • 应交税费里的应交企业所得税意思是交了吗
  • 员工离职公司需要办理什么手续
  • 营改增开票规定
  • 工商年报报表
  • 上年度的费用今年开票分录
  • 营改增贷款服务包括哪些
  • 餐查账征收企业所得税会计分录?
  • 支付给个人的小票怎么写
  • 未到期的商业票据是什么
  • 处置子公司属于调整事项吗
  • linux 命令行
  • 公司租赁办公室要注意什么
  • 会计科目明细分类科目表
  • php pulsar
  • 国外进口增值税税率
  • 企业境外所得税额抵免限额应分国分项计算
  • php教程视频
  • 土地使用税缴纳人是使用者还是所有权人
  • thinkphp3.x中display方法及show方法的用法实例
  • ctf web题型
  • typescript instanceof
  • 猿创征文,宝藏工具篇
  • 网络命令netstat
  • 上月未记账,本月不能记账
  • php文件怎么浏览
  • 纳什理论是什么
  • mysql函数nvl
  • python中的count函数
  • 帝国cms升级到7.5后不能发布内容信息
  • 企业被吊销后能当被告嘛
  • 帝国cms文件夹介绍
  • 营业总收入包括营业外收入吗
  • 劳务派遣人员保险
  • 对公账户往来款需要归还吗
  • 税务局季度报表利润表
  • 使用银行汇票的结算方式
  • 有哪些情况可以用别人的id
  • 公司土地被征收怎么办
  • 财务报表中的净利润
  • 简易计税方法适用什么服务
  • 短期借款的相关法规
  • 固定资产为什么不能直接计入费用
  • 银行回单模板
  • 怎么开劳务派遣工作证明
  • 如何学会计做账视频
  • 开业建账到年末怎么做账
  • mysql数据库优化面试题
  • win8怎么打开光驱
  • 只需要30秒让让你的电脑速度快一倍
  • 打开本地搜索
  • win8操作系统安装
  • winxp的控制面板在哪里
  • centos6 iptables配置
  • linux bzz
  • python必学的os模块详解
  • perl hex
  • jquery中绑定事件
  • Linux命令行和shell脚本编程大全
  • 一般纳税人业务招待费可以抵扣吗
  • 福建省地方amc
  • 公共卫生委员会领导小组
  • 1973年简并税制
  • 哪些账本需要贴纸
  • 创新税务稽查方案
  • 福建是高原还是平原
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设