在我的应用程序中,我希望用户输入用户名和密码,然后首先使用查找查询在数据库中检查用户名,如果找到用户名,则将新页面呈现给用户。 问题是,如果我输入错误的用户名和密码,那么它也会呈现一个新页面,并且该页面也不会完全加载。 请告诉我错误是什么。
在 app.js 中我写了:
app.post('/profile',users.login);
在 users.js 中我写了:
exports.login=function(req,res){
console.log("login called");
PersonalInfo.findOne({ name:req.params.userName}, function(err,data){
if(err)
{
console.log("find is not done");
console.log(data);
}
else{
res.render("/profilearea.ejs");
}
})
}
最佳答案
当 findOne
查询未能找到匹配文档时,不会将其视为错误。相反,“未找到”情况由 findOne
回调的 data
参数指示为 null
。
您的 findOne
回调函数的代码应如下所示:
if(err || !data)
{
console.log("find is not done");
}
else{
res.render("/profilearea.ejs");
}
关于node.js - 无法使用查找查询在 Mongoose 中查找数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828207/