Trong phiên bản hiện tại của Mongoose, exec()
phương thức trả về một Promise, vì vậy bạn có thể thực hiện như sau:
exports.process = function(r) {
return Content.find({route: r}).exec();
}
Sau đó, khi bạn muốn lấy dữ liệu, bạn nên đặt nó ở chế độ không đồng bộ:
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.
});
});
Để biết thêm thông tin về những lời hứa, có một bài báo tuyệt vời mà tôi mới đọc gần đây:http://spion.github.io/posts/why-i-am-switching-to-promises.html