Синяя птица обещает ватерлинии.native() sailsjs с sails-mongo
Согласно документации.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);
});
});
Как я могу избежать обратного вызова здесь и использовать обещания вместо этого. Обратите внимание, что я должен использовать агрегированные запросы, поэтому должен использовать.native()
1 ответ
Как упомянуто здесь, откройте bootstrap.js в config и исправьте все методы с обещанием, как это
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(); };
На бонусной стороне вы можете использовать последнюю версию bluebird со всеми моделями. Надеюсь, поможет