【问题标题】:Using promises in Mongoose在 Mongoose 中使用 Promise
【发布时间】:2019-06-18 03:40:37
【问题描述】:

我不熟悉用于同时检索多个数据库记录的 Promise 方法,我想重写我现有的代码以使用 Promise

我在 Express 中有这段代码:

getController.getData = function(req,res, collection, pagerender) {
  var id = req.params.id;
  collection.find({}, function(err, docs){
    if(err) res.json(err);
    else res.render(pagerender, {data:docs, ADusername: req.session.user_id, id: req.params.id});
    console.log(docs);
  });
};

现在我想在这里使用 Promise,这样我就可以对数据库进行更多查询。有谁知道我怎么能做到这一点?

【问题讨论】:

    标签: express mongoose promise


    【解决方案1】:

    首先,检查collection.find({}) 是否返回一个promise。如果是这样,那么您可以像这样调用您的代码:

    collection.find({}).
        then(function(docs){
            res.render(pagerender, {data:docs, ADusername: req.session.user_id, id: req.params.id});
        })
        .catch( function(err) {
            res.json(err);
        })
    

    如果您想要更多调用,只需创建新的 DB 调用并添加另一个 .then 块。

    我建议您阅读有关 Promise 的文档,只是为了大致了解它们 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then)。如果需要,您还将了解如何在同一函数中处理成功和拒绝。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 2018-09-09
      • 2016-11-27
      • 2019-02-08
      • 2017-10-19
      • 2017-01-02
      • 2019-04-17
      • 2016-10-18
      • 2016-06-22
      相关资源
      最近更新 更多