1. 数据库改用 MongoDB
1. 插件安装
npm i mongodb --save
npm i mongoose --save
2. 连接 mongodb
- 创建 db 文件夹和 mongodb.js
const mongoose = require('mongoose')
mongoose
.connect('mongodb://127.0.0.1:27017/myblog')
.then((client) => {
console.log("mongodb connect success!");
})
.catch((err) => {
console.log(err);
})
module.exports = mongoose
- 创建 User Model
const mongoose = require('../db/mongodb')
// 定义数据规范
const UserSchema = mongoose.Schema({
username: {
type: String,
required: true,
unique: true
},
password: String,
realname: String
}, { timestamps: true })
// Model对于collection
const User = mongoose.model('user', UserSchema)
module.exports = User
- Blog model
const mongoose = require('../db/mongodb')
// 定义数据规范
const BlogSchema = mongoose.Schema({
title: {
type: String,
required: true
},
content: String,
author:{
type: String,
required: true
}
}, { timestamps: true })
// Model对于collection
const Blog = mongoose.model('blog', BlogSchema)
module.exports = Blog
3. 调取数据返还
1. 接受请求
- 在 route 文件夹 user.js
const { login } = require('../controller/user')
const router = require('koa-router')()
router.prefix('/api/user')
router.post('/login', async function(ctx, next){
const { username, password } = ctx.request.body
const res = await login(username, password)
ctx.body = {
errno: 0,
res
}
})
- blog 路由
const { getList } = require('../controller/blog');
const router = require('koa-router')()
router.prefix('/api/blog')
router.get('/list', async function (ctx, next) {
const { author, keyword} = ctx.request.body
const result = await getList(author, keyword)
ctx.body = result
});
2. 调取数据 controller
const User = require('../models/User')
const login = async (username, password) => {
const user = await User.find({
username,
password
})
if(user == null){
return {}
}
return user
}
module.exports = {
login
}
- blog 文件
const Blog = require('../models/Blog')
const getList = async (author, keyword) => {
const whereOption = {}
if(author) whereOption.author = author
if(keyword) whereOption.keyword = keyword
const list = await Blog.find(whereOption).sort({_id: -1})
return list
}
module.exports = {
getList
}