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

  • 如何清除电脑的垃圾广告和弹窗(如何清除电脑的微信聊天记录)

    如何清除电脑的垃圾广告和弹窗(如何清除电脑的微信聊天记录)

  • qq怎么设置系统提示音(qq怎么设置系统声音)

    qq怎么设置系统提示音(qq怎么设置系统声音)

  • 手机型号在哪里查(手机型号在哪里查找)

    手机型号在哪里查(手机型号在哪里查找)

  • 抖音亲密值怎么涨得快(抖音亲密值在哪里)

    抖音亲密值怎么涨得快(抖音亲密值在哪里)

  • 路由器和宽带的关系(路由器和宽带的连接)

    路由器和宽带的关系(路由器和宽带的连接)

  • 表格第一列被隐藏了怎么显示出来(表格第一列被隐藏怎么弄出来)

    表格第一列被隐藏了怎么显示出来(表格第一列被隐藏怎么弄出来)

  • 8核16线程处理器有哪些(8核16线程处理器数量和每个处理器内核数量)

    8核16线程处理器有哪些(8核16线程处理器数量和每个处理器内核数量)

  • potalooa华为什么型号(paraloo华为什么价位)

    potalooa华为什么型号(paraloo华为什么价位)

  • 抖音不小心刷新了怎么看上个视频(抖音不小心刷新了怎么找上一个视频)

    抖音不小心刷新了怎么看上个视频(抖音不小心刷新了怎么找上一个视频)

  • leoa是什么手机(leoia是什么牌子手机)

    leoa是什么手机(leoia是什么牌子手机)

  • 苹果计算机怎么看历史记录(苹果计算机怎么删除一个数字)

    苹果计算机怎么看历史记录(苹果计算机怎么删除一个数字)

  • .numbers是什么文件(numbers中文是什么)

    .numbers是什么文件(numbers中文是什么)

  • 小米5s是全网通吗(小米5c全网通)

    小米5s是全网通吗(小米5c全网通)

  • xrhome键怎么设置(xrhome键在哪里)

    xrhome键怎么设置(xrhome键在哪里)

  • 移动硬盘是机械的还是固态的(移动硬盘是机械硬盘吗?)

    移动硬盘是机械的还是固态的(移动硬盘是机械硬盘吗?)

  • 鸿蒙系统是基于安卓吗(鸿蒙系统基于安卓开发的吗)

    鸿蒙系统是基于安卓吗(鸿蒙系统基于安卓开发的吗)

  • 微信刷脸支付怎么弄(微信刷脸支付怎么设置)

    微信刷脸支付怎么弄(微信刷脸支付怎么设置)

  • 手机上的图片怎么传到另一个手机(手机上的图片怎么传到U盘)

    手机上的图片怎么传到另一个手机(手机上的图片怎么传到U盘)

  • 抖音隐私设置关注不了(抖音隐私设置关注了可以发消息吗)

    抖音隐私设置关注不了(抖音隐私设置关注了可以发消息吗)

  • 微信出行历史怎么看(微信里面出行历史)

    微信出行历史怎么看(微信里面出行历史)

  • 文件盒标签怎么做(文件盒标签怎么制作)

    文件盒标签怎么做(文件盒标签怎么制作)

  • 硬件设备不符合要求如何升级到win11系统 附win11下载+升级助手(硬件设施不完备)

    硬件设备不符合要求如何升级到win11系统 附win11下载+升级助手(硬件设施不完备)

  • 【前端】批量导入和导出Excel数据(前端批量下载图片)

    【前端】批量导入和导出Excel数据(前端批量下载图片)

  • c语言中如何计算数组长度(C语言中如何计算除法)

    c语言中如何计算数组长度(C语言中如何计算除法)

  • 小规模纳税人减按1%政策文件
  • 从农民手中收购粮食如何计算进项税
  • 个人出租不动产税率
  • 三个案例看清增值税即征即退?
  • 货运代理费计入固定资产吗
  • 一般纳税人季报是哪几个月报税
  • 长期待摊费用影响什么
  • 建筑业预缴税款都要填哪些表
  • 个体工商户生产经营所得怎么申报
  • 公司把钱借给个人
  • 房屋租赁收入如何征税?
  • 营改增企业所得税
  • 营改增对房地产行业的影响
  • 企业归还借款给个人
  • 三证合一后银行开户许可证还有吗
  • 现金折扣怎么进账
  • 应交税金进项税的会计分录
  • 借款合同的印花税税率
  • 冲减预提费用
  • 广告费支出限额
  • 公司注销取不到采购发票怎么汇算清缴?
  • 子公司取得的投资收益
  • 盈余公积金什么时候计提
  • 没给顾客发票需要罚款吗
  • 备抵法发生坏账分录
  • 发票跨期审计调查报告
  • 个体工商户怎样开发票
  • 苹果助手hi
  • 小规模餐饮业怎样报税减免
  • php判断查询是否有结果
  • wp网站迁移
  • 2020 php 薪资
  • 协调费用应该怎么表述
  • 外企借款投资利息高吗
  • 哪一年底,由linux基金会成立?
  • 计提公积金账务处理需要什么凭证
  • 小茴香的栽培技术
  • uni-app打包h5
  • php制作网页
  • 在php中提供了什么函数用于删除数组中的元素
  • php array操作
  • 前端如何将项目分类
  • 固定资产暂停使用期间需要计提折旧吗
  • 邮电局上级部门
  • 利息 记账
  • 脚手架租赁费用超过购买价格
  • 机械租赁费税率是多少
  • 购买监控器计入什么科目
  • 成本费用利润率越高越好吗
  • 个体户的税收政策
  • 非应税项目是有哪些项目
  • 结转销售成本的凭证需要附件吗
  • 会计原材料的账怎么记账
  • 税收滞纳金的问题有哪些
  • 退货会计如何处理
  • 当你感觉到你的win2000运行速度明显减慢
  • windows server 2008 r2最大支持内存
  • vmware下ubuntu(linux)与主机文件共享设置的方法
  • mac怎么复制粘贴文件夹
  • FreeBSD, Debian, CentOS一个网卡绑定多个IP
  • xp系统安装条件
  • windows7 记事本
  • windows7的关闭方法
  • win7安装软件后所有打开变成记事本
  • 电脑死机常见原因分析
  • pebble框架
  • Python常用时间操作总结【取得当前时间、时间函数、应用等】
  • unity unit
  • 使用NGUI时遇到物理引擎错误
  • 安卓返回按钮图标
  • unity strangeioc
  • python内置数据结构有几种
  • Unity3D游戏开发标准教程
  • jquery单击事件和双击事件
  • 安卓万能插件
  • 福建省人民医院院长
  • 怎样在微信小程序里交医保
  • 专利证书印花税怎么计算
  • 2013年报废车流程
  • 餐饮票抵扣成本怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设