mongoose与koa2的使用

mongoose与koa2的使用_第1张图片
这是项目的结构
koa-generic后端框架的基础上新建一个dbs文件夹中新建一个config.js(配置文件)和一个person.js(创建mongodb数据集合的js文件)

下载插件

npm i mongoose --save 

config.js

module.exports = {
    dbs:"mongodb://127.0.0.1:27017/dbs" // 设置要链接的地址
    // 地址格式 "mongodb://地址:端口号/这个mongodb数据集合所在的文件夹"
}

person.js

var mongoose = require('mongoose'); 
var Person = new mongoose.Schema({ // 实列化mongoose映射
   name : String,
   age : String
});
module.exports = mongoose.model('Person',Person) // 创建一个mongoose对象模型

app.js

在自动生成的代码的基础上添加
const mongoose = require('mongoose')
const dbs = require('./dbs/config') // 引用配置文件
mongoose.connect(dbs.dbs,{ useNewUrlParser: true,useUnifiedTopology: true },function(){
  console.log('connection is success')
})
// 链接mongodb数据对象 (链接对象的地址,[option],callback)

users.js

主要从数据对象模型中获取数据时要使用async和await
因为获取数据可能会有延迟
会出现 关于json数据的错误

const person = require('../dbs/person') // 调用person.js中的mongoose数据对象
// 实现数据的添加
router.post('/addPerson',async function(ctx,next){
  let result = new person({  // 给person数据对象中添加数据
    name:ctx.request.body.name, // 设置数据
    age:ctx.request.body.age
  })
  await result.save(function (err, res) { // 把设置好数据提交
    if (err) {
      console.log("Error:" + err);
    } else {
      console.log("Res:" + res);
    }
  })
  ctx.body = {
    result 
  }
});
// 查询person数据对象中数据
router.post('/selectPerson',async function(ctx,next){
  let result1 = await person.find() // 获取所有数据return arr
  let result2 = await person.find({ // 获取符合条件的所有数据return arr
    name:ctx.request.body.name
  })
  let result3 = await person.findOne({ // 获取符合条件的第一条数据 return obj
    name:ctx.request.body.name
  })
 
  ctx.body = {
    result1,
    result2,
    result3
  }
});
// 删除数据模型对象中的某一条数据
router.post('/delPerson',async function(ctx,next){
  let result1 = await person.where({
    name:ctx.request.body.name
  }).remove()
  ctx.body = {
    result1
  }

// 修改数据模型对象中的某一条数据
router.post('/updatePerson',async function(ctx,next){
  let result1 = await person.where({
    name:ctx.request.body.name
  }).update({
    name:ctx.request.body.name1
  })
  ctx.body = {
    result1
  }
  })

以上就是koa和mongoose结合使用基本的增删改查数据接口
总结一下代码主线

var Person = new mongoose.Schema({ // 实列化mongoose映射
   name : String,
   age : String
});
module.exports = mongoose.model('Person',Person) // 创建一个mongoose对象模型
mongoose.connect(dbs.dbs,{ useNewUrlParser: true,useUnifiedTopology: true },function(){
  console.log('connection is success')
}) // 创建链接
new person({设置内容}).save() 
person.find()
person.where().remove()
person.where().update()

你可能感兴趣的:(mongodb,sql)