簡體   English   中英

Express.js +貓鼬。 find()未傳遞定義變量的結果

[英]Express.js + Mongoose. find() not passing results for defined variable

我試圖將項目設置為僅由發布它的用戶查看。 我正在使用Passport.js來處理會話。 在這段代碼中,我能夠看到一切成功運行到最后。

     app.get('/latestproject', isLoggedIn, function(req, res) { 
        var Project = require('../app/models/project');
        var latest = null;
        var currentUser = req.user._id;
        Project.find({owner: currentUser}).sort({_id: 'desc'}).limit(1).exec(
            function(err, projects) {
                if (err) {
                    res.send(err);
                } else if (projects) {
                    latest = projects._id
                    res.redirect('/project/' + latest);
                } else {
                    res.redirect('/start');
                }

            });
});

沒有用戶組件,我已經能夠毫無問題地運行相同的代碼。 數據庫中的所有者值與currentUser變量正在輸出的值相同。

一切似乎都可以正常工作,但是由於某種原因,當它使之成為條件時,我在控制台日志中得到了“項目/未定義”作為最終結果。

我知道這可能很小,但是我已經去了幾個小時,需要幫助!

您的代碼中有小錯誤。 通常,即使結果計數為1,貓鼬find也會返回對象數組。因此,將代碼更改為此

else if (projects && projects.length===1) {
                latest = projects[0]._id
                res.redirect('/project/' + latest);
            } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM