gpt4 book ai didi

javascript - Express.js + Mongoose。 find() 未传递定义变量的结果

转载 作者:行者123 更新时间:2023-12-03 07:34:39 25 4
gpt4 key购买 nike

我正在尝试将项目设置为仅由发布该项目的用户查看。我正在使用 Passport.js 来处理 session 。在这段代码中,我可以看到一切都成功运行到最后。

     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,mongoose find 也会返回一个对象数组。因此,将代码更改为这样

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

关于javascript - Express.js + Mongoose。 find() 未传递定义变量的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com