作为此帖子的后续内容: mongoose find all not sending callback
我现在正在尝试在nodejs / expressjs应用程序中将对象与页面一起发送,而不是将JSON数据仅作为响应发送。
我的页面的路线
//Get latest listings page
router.get('/latest', function (req, res) {
var rL = Request.getAllRequestListingsCb();
res.render('latest');
});
根据链接的帖子,它建议以下内容,但我需要将JSON返回到我的路由,而不是直接将其发送给客户端。
//Find all.
module.exports.getAllRequestListings = function (response) {
var query = {};
Request.find(query, function (err, docs) {
response.send(docs);
});
};
曾经尝试使用Promise,但是我的rL var一直返回未定义状态,因此Promise永远不会像“ done”那样被获取,我相信是因为我没有正确更改它,所以现在在这里。
(最终目标是使用“把手”在最新页面中呈现一个表,以显示与页面一起发送的Json中的数据。)
答案 0 :(得分:1)
您应该使用正确的回调链接,因为find
方法是异步的。
//Find all.
module.exports.getAllRequestListings = function (callback) {
var query = {};
Request.find(query, callback);
};
路由器
//Get latest listings page
router.get('/latest', function (req, res) {
Request.getAllRequestListingsCb(function (err, docs){
res.render('latest', { rL: docs });
});
});