谁能给我一个关于如何在 Mongoose 中使用 Promise 的例子。这是我所拥有的,但它没有按预期工作:
app.use(function (req, res, next) {
res.local('myStuff', myLib.process(req.path, something));
console.log(res.local('myStuff'));
next();
});
然后在 myLib 中,我会有这样的东西:
exports.process = function ( r, callback ) {
var promise = new mongoose.Promise;
if(callback) promise.addBack(callback);
Content.find( {route : r }, function (err, docs) {
promise.resolve.bind(promise)(err, docs);
});
return promise;
};
在某些时候,我希望我的数据会出现,但我如何才能访问或获取它?
最佳答案
在当前版本的 Mongoose 中,exec()
方法返回一个 Promise,因此可以执行以下操作:
exports.process = function(r) {
return Content.find({route: r}).exec();
}
然后,当你想获取数据时,你应该让它异步:
app.use(function(req, res, next) {
res.local('myStuff', myLib.process(req.path));
res.local('myStuff')
.then(function(doc) { // <- this is the Promise interface.
console.log(doc);
next();
}, function(err) {
// handle error here.
});
});
有关 Promise 的更多信息,我最近阅读了一篇精彩的文章: http://spion.github.io/posts/why-i-am-switching-to-promises.html
关于node.js - 如何使用 Mongoose Promise - mongo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022099/
相关文章:
mongodb - 运行 updateOne 时出现错误 : the update operatio
ruby - 如何在控制台中禁用 MongoDB 日志消息?
mongodb - 如何在 Mongo 中进行 "NOT IN"查询?
mongodb - 使用聚合框架使用 MongoDB 进行组计数
mongodb - sudo service mongodb restart 在 ubuntu 14
mongodb - Mongo "prealloc"文件占用空间
python - 如何将 pymongo.cursor.Cursor 转换为字典?