Javascript 当答案总是被找到的时候
为什么总是可以找到控制台输出?我输入的任何电子邮件或密码,输出都是相同的,即使它们不在数据库中Javascript 当答案总是被找到的时候,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,为什么总是可以找到控制台输出?我输入的任何电子邮件或密码,输出都是相同的,即使它们不在数据库中 app.post("/login", (req, res) => { const email = req.body.username const password = req.body.password User.find({ email: email, password: password }, function(err, userInfo) {
app.post("/login", (req, res) => {
const email = req.body.username
const password = req.body.password
User.find({ email: email, password: password }, function(err, userInfo) {
if (err) {
console.log("err")
} else {
if (userInfo) {
console.log("found")
} else {
console.log("not found")
}
}
});
})
因为User.find将返回一个数组,即使没有与查询匹配的文档,它也将返回一个空数组 在javascript中,如果传递空数组,如果它传递了条件 使用User.findOne或检查userInfo.length是否大于0
您能在else中运行console.loguserInfo吗?这可能是因为DB没有为找不到记录而引发异常。您可能将userInfo作为空数组或空对象获取,在javascript中解析为True。在检查上述错误时,为什么要使用条件ifuserInfo,请删除该条件并检查userInfo.length是否>0@MDMNauman,你是什么意思,我正在检查那里是否有错误,否则,它应该显示是否找到found@Zaid是的,您正在检查,但是当您使用find时,它将始终返回一个数组,因此此条件将无效,而不是检查userInfo.length>0
app.post("/login", (req, res) => {
const email = req.body.username
const password = req.body.password
User.findOne({ email: email, password: password }, function(err, userInfo) {
if (err) {
console.log("err")
} else {
if (userInfo) {
console.log("found")
} else {
console.log("not found")
}
}
});
})