[英]Express Node - Return Results on Find Mongoose to variable
[英]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.