使用与mongoose控制器/模型的异步

时间:2016-10-09 07:39:53

标签: javascript node.js mongodb express asynchronous

我可以把每个模型都放在模型的回调中,但那种混乱和难以阅读。我找到了一个名为async的npm,但我不知道如何使用它。

User.find({
     "email":req.body.user_email
    }),
    function(err,response){
        if(!err){
            res.json(response);
        }
    })

AnotherModel.find(),
    function(err,response){
        if(!err){
            res.json(response);
        }
    })

我已阅读该文档,但我不理解。

async.parallel([
    function(callback){ ... },
    function(callback){ ... }
], function(err, results) {
    // optional callback
};

我想要的是最后在合并多个模型的数据并将其发送到前端后,我只需要做一个res.json。

1 个答案:

答案 0 :(得分:0)

像这样使用

async.parallel([
  function(callback) {
    User.find({
        "email": req.body.user_email
      }),
      function(err, response) {
        if (!err) {
          callback(null,response)
        }
      })
},
function(callback) {
  AnotherModel.find(),
    function(err, response) {
      if (!err) {
        callback(null,response)
    })

}],
function(err, results) {
  if(!err){
    res.json(results);
  // You will get array of results in your results agrs
  }
};