【问题标题】:Bluebird Promises in waterline .native() sailsjs with sails-mongoBluebird Promises 在水线 .native() 带有sails-mongo 的sailsjs
【发布时间】:2017-01-06 06:30:35
【问题描述】:

根据 .native() 文档,使用 .native() 查询sails-mongo的方法是:

Pet.native(function(err, collection) {
    if (err) return res.serverError(err);
    collection.find({}, {
        name: true
    }).toArray(function (err, results) {
          if (err) return res.serverError(err);
               return res.ok(results);
       });
});

我怎样才能在这里避免回调并改用 Promise。请注意,我必须使用聚合查询,所以必须使用 .native()

【问题讨论】:

标签: mongodb promise sails.js waterline sails-mongo


【解决方案1】:

正如提到的here 在配置中打开 bootstrap.js 并用这样的承诺猴子修补所有方法

module.exports.bootstrap = function(cb) {
var Promise = require('bluebird');

Object.keys(sails.models).forEach(function (key) {
    if (sails.models[key].query) {
        sails.models[key].query = Promise.promisify(sails.models[key].query);
    }
});

cb();  };

另一方面,您可以在所有型号上使用最新版本的蓝鸟。希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2015-07-08
    • 2017-04-03
    相关资源
    最近更新 更多