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');