码迷,mamicode.com
首页 > 其他好文 > 详细

mongoose 各种执行

时间:2017-08-27 09:56:55      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:use   nbsp   .so   mit   return   开始   一个   cti   链式   

mongoose各种写法比较,以User模型查询为例进行

第一种写法

//findone两个参数,第一个参数是查询的条件,第二个参数是查询的返回结果,结果中有两个参数分别是错误的反馈,和正确的返回结果。
User.findOne({id:id},(err,doc)=>{
  
})

第二种写法

//直接查询,then之后返回两个Promise函数,第一个是then之前的事件如果成功执行,第二个是失败执行。
User.findOne({id:id}).then(res=>{
  
})

多条件查询适合用then

router.get(‘/article/getlist‘, (req, res) => {
  Article.find().sort({_id:-1}).populate(‘category‘).then(doc => {
    res.send(doc)
  })
})

用exec()分开写

// 可以先定义条件,链式写法
var goodsModel = Goods.find(params).limit(pageSize).skip(skip);
// 第一次定义之后依然可以链式继续定义
goodsModel.sort({ ‘salePrice‘: sort });
// 最后用exec()执行。
goodsModel.exec(function (err, doc) {

  if (err) {
    res.json({
      status: ‘1‘,
      msg: err.message
    })
  } else {
    res.json({
      status: ‘0‘,
      msg: ‘‘,
    
    })
  }
})

如果是连续两个或者多个then

查询首次执行then,默认遵守promise规则,但是从第二个开始的then,你必须手动返回一个成功或者失败的promise执行 return  Promise.reject(),来指定执行then后的第一个还是第二个。

mongoose 各种执行

标签:use   nbsp   .so   mit   return   开始   一个   cti   链式   

原文地址:http://www.cnblogs.com/wuyushuo/p/7439568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!