1.电脑本地安装mogonDB 地址:https://www.mongodb.com/download-center/community进行下载安装

2.同时安装ROBO3T 地址https://robomongo.org/

3.在ssr项目nuxtjs中,安装mongoose
npm install mongoose
4.在文件夹中创建文件
mkdir dbs
mkdir dbs/config.js
配置链接文件config.js
module.exports = {
dbs: 'mongodb://127.0.0.1:27017/dbs'
}
创建Schema 和 models
const mongoose = require('mongoose')
let personSchema = new mongoose.Schema({name: String, age: Number})
module.exports = mongoose.model('Person', personSchema)
在app.js中需要配置
const mongoose = require('mongoose')
const dbConfig = require('./dbs/config')
mongoose.connect(dbConfig.dbs,{
useNewUrlParser:true
})
在user.js中配置增删改查,调用api
const router = require('koa-router')()
const Redis = require('koa-redis')
const Person = require('../dbs/models/person')
const Store = new Redis().client
router.prefix('/users')
router.get('/', function(ctx, next) {
ctx.body = 'this is a users response!'
})
// 增加
router.post('/addPerson', async function(ctx) {
const person = new Person({name: ctx.request.body.name, age: ctx.request.body.age})
let code
try {
await person.save()
code = 0
} catch (e) {
code = -1
}
ctx.body = {
code: code
}
})
// 查询
router.post('/getPerson', async function(ctx) {
const result = await Person.findOne({name: ctx.request.body.name})
const results = await Person.find({name: ctx.request.body.name})
ctx.body = {
code: 0,
result,
results
}
})
// 更新
router.post('/updatePerson',async function(ctx){
const result = await Person.where({
name: ctx.request.body.name
}).update({
age: ctx.request.body.age
})
ctx.body={
code:0
}
})
// 删除
router.post('/removePerson',async function(ctx){
const result = await Person.where({
name: ctx.request.body.name
}).remove()
ctx.body={
code:0
}
})
module.exports = router
最后:目录结构参考

网友评论