使用expressjs mongoose

时间:2018-08-21 10:40:08

标签: javascript node.js express mongoose promise

作为此帖子的后续内容: 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中的数据。)

1 个答案:

答案 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 });
    });

});