• 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
    
    
  • 相关阅读:
    Oracle 11g导出空表
    如何破解ROS路由器禁用路由PPPOE拨号?
    Oracle入门心得(2)
    ORACLE了局,每天10问(五)
    若何消除Oracle数据库的安静隐患(3)
    Oracle入门心得(1)
    ORACLE用户自定义备份与恢复条记
    ORACLE成绩,每天10问(三)
    ORACLE问题,每天10问(一)
    怎样消除Oracle数据库的安全隐患(1)
  • 原文地址:https://www.cnblogs.com/superlizhao/p/12056098.html
Copyright © 2020-2023  润新知