Koa2、mongoose常用代码模板
2023-09-11 14:19:19 时间
Koa2、mongoose常用代码模板
一、生成后端项目
npm init -y
二、下载Koa2、mongoose
# 注意这里是koa不是koa2
npm install koa mongoose -S
- -S指的是添加到运行依赖中,相当于–save
- -D指的是添加到开发依赖中,相当于–save -dev
三、在根目录新建app.js文件
- 代码如下
const Koa = require('koa')
const app = new Koa()
app.listen(4000,() => console.log("服务器启动"))
四、链接数据库
- 在根目录新建数据库文件db
- 在db下建立models.js文件
- 代码如下
const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/xxxx',{ useNewUrlParser: true,useUnifiedTopology: true})//xxxx为数据库的名称
const connection= mongoose.connection
connection.on('connected', () => {
console.log('db connect success!')
})
const yyySchema = mongoose.Schema({
username: {type: String, required: true},
})
//新建集合
const yyyModel = mongoose.model('yyy', yyySchema)
exports.UserModel = UserModel
大致按照的步骤如下
- 连接数据库
- 引入mongoose
- 连接指定数据库(URL只有数据库是变化的)
- 获取连接对象
- 绑定连接完成的监听(用来提示连接成功)
- 定义出对应特定集合的Model并向外暴露
- 字义Schema(描述文档结构)
- 定义Model(与集合对应, 可以操作集合)
- 向外暴露Model(SM)
五、Koa2路由与数据库相结合
koa-router
- 在根目录下新建
routes
文件夹 - 在新建
index.js
文件 - Koa2使用路由需要中间件
koa-router
npm install koa-router -S
- 打开
index.js
,写如下代码
const Router = require('koa-router')
const router = new Router()
//或者直接写
const router = require('koa-router')()
//然后可以写类似的如下代码
router.get('/', async (ctx, next) => {
await ctx.render('index', {
title: 'Hello Koa 2!'
})
})
//暴露
module.exports = router
- 打开
app.js
,写如下代码
const router = require('./routes/index')
//下面的代码最好写在下部,声明使用
app.use(router .routes(), router .allowedMethods())//用来鉴别GET/POST方法
数据库
- 打开
routes/index.js
引入数据库
//利用了es6的解构
const {yyyModel} = require('../db/models')
- 客户端通过url对数据库进行操作,此时路由的代码应该如下
//1.注册一个路径
router.post('/register', async (ctx, next) => {
//2.取出参数
const {参数} = ctx.request.body
//3.数据库查询
const result = yyyModel.findOne({参数})
//4.进行操作,返回响应数据
ctx.body = result
})
六、其他说明
//全局安装
npm install koa-generator -g
//新建项目
koa2 项目名称
- 需要注意的是命令的开始是
koa2
,如果达成koa也是可以的,只不过新建的不是koa2的项目 - 运行
npm install
,之后运行npm run dev
,访问localhost:3000
出现以下画面表示后台项目运行成功
修改端口号
- 打开
bin/www
- 修改以下代码
var port = normalizePort(process.env.PORT || '3000');
相关文章
- 小程序的初次遇见,使用mpvue搭建模板
- unity3d webplayer 16:9 居中显示模板
- C++ 模板与泛型编程
- 【C/C++学院】0816-引用包装器/仿函数/转义字符 R”()”/using别名/模板元编程 比递归优化/智能指针/多线程/静态断言以及调试技能的要求 assert
- poj 3486 A Simple Problem with Integers(树状数组第三种模板改段求段)
- mobile移动网页开发常用代码模板
- django模板中使用JQ代码实现瀑布流显示效果
- golang模板语法
- Django 模板
- C#模板方法模式
- AS 代码模板 文件模板 Templates MD
- Python Django模板页面自定义过滤器实现md语法及字符串切割代码示例
- c++模板篇01之函数模板
- [效率提升]webstorm配置Prettier:代码自动格式,格式化时清除空行,修改使用代码模板
- 【微搭低代码】美业小程序官方模板练习-绘制原型
- 微搭低代码小程序模板体验
- 数学建模学习(49):灰色预测案例二(案例+代码模板)
- 数学建模学习(47):灰色预测模型案例一(代码模板+模型建立)
- pycharm默认的模板修改python script
- 模板方法模式分析、图表和基本代码
- c++ 17 模板 函数式编程 折叠表达式 fold
- 位运算模板
- Android Studio添加文件注释头模板?
- 线段树——todo,待自己写代码模板
- dijkstra最短路代码模板更新
- dp模板
- 【Flask】 Jinja2模板语言
- FineReport帆软报错:很抱歉,数据集行数过多触发保护机制,请减少查询数据量。若您是管理员,可于智能运维-内存管理-模板限制中更改此项限制。
- Eclipse 代码模板
- web后端轻量级框架flask基础调用程序模板
- 【跟学C++】C++STL标准模板库——算法详细整理(下)(Study18)
- Latex学习笔记(八)代码附录模板
- 【区块链技术开发】 Solidity使用Truffle Box工具实现预构建模板、自动化部署、创建智能合约示例代码