mongoose学习笔记

项目目录结构如下:

dbs/conf.js

const conf = {
  url: "mongodb://localhost:27017/test",
  dbName: "test"
}
module.exports = conf;

dbs/models/person.js

const mongoose = require('mongoose');
//定义一个描述表结构的Schema
let personSchema = new mongoose.Schema({ name: String, age: Number })
//把这个 schema 编译成一个 Model,和表联系起来,model 是我们构造 document 的 Class
module.exports = mongoose.model('Person', personSchema)

app.js

const conf=require('./dbs/conf');
...
//连接数据库
mongoose.connect(conf.url,{
  useNewUrlParser:true
});
...

routes/users.js

const router = require('koa-router')()
const Person = require('../dbs/models/person')
router.prefix('/users')

router.get('/', function (ctx, next) {
  ctx.body = 'this is a users response!'
})
//add
router.post('/addPerson', async function (ctx, next) {
  //实例化一个person
  const person = new Person({ name: ctx.request.body.name, age: ctx.request.body.age })
  let code
  try {
   //实例调用save()
    await person.save()
    code = 0
  } catch (e) {
    code = 1
  }

  ctx.body = { code: code }
})
// get
router.post('/getPerson', async function (ctx) {
  let result;
  try {
   //Person的静态方法 find
    result = await Person.find({ name: ctx.request.body.name })
    code = 0
  } catch (e) {
    code = 1
  }
  ctx.body = { result: result }
})
//update
router.post('/updatePerson', async function (ctx) {
 //Person的静态方法 update
  const result = await Person.where({ name: ctx.request.body.name })
    .update({ age: ctx.request.body.age })
  ctx.body = { result: result }
})
// remove
router.post('/removePerson', async function (ctx) {
  //Person的静态方法 remove
  const result = await Person.where({ name: ctx.request.body.name })
    .remove()
  ctx.body = { code: 0 }
})
module.exports = router

posted @ 2019-12-17 18:32  哥哦狗子  阅读(222)  评论(0编辑  收藏  举报