Node.js和mongoose(mongodb)错误无法读取属性'';空的
我有一个findOne查询,当我验证它是否返回一个空文档时,我会被抛出一个错误,说“不能读取null的属性”username“。当我尝试访问if(!doc.username)中的doc.username时,就会发生这种情况{ 我的代码:Node.js和mongoose(mongodb)错误无法读取属性'';空的,node.js,mongodb,Node.js,Mongodb,我有一个findOne查询,当我验证它是否返回一个空文档时,我会被抛出一个错误,说“不能读取null的属性”username“。当我尝试访问if(!doc.username)中的doc.username时,就会发生这种情况{ 我的代码: function checkAccDb(username, password) { console.log(2); /* Check if accounts exists in db */ db.findOne({username: userna
function checkAccDb(username, password) { console.log(2);
/* Check if accounts exists in db */
db.findOne({username: username}, function(err, doc){ console.log(3);
if(err) throw err;
if(!doc.username) {
add2stack(username, password);
}
else if(doc.status == 200) {
end(username, password, 1000);
}
else if(doc.status == 401) {
if(doc.password == password)
end(username, password, 401);
else
add2stack(username, password);
}
else {
add2stack(username, password);
}
});
}
谁能给我解释一下这里发生了什么事
谢谢!查询成功,但未找到任何匹配项,因此
err
和doc
都为空。您需要检查doc
是否为空,并适当处理该情况。典型的实现如下所示
db.findOne({username: username},function(err, doc) {
if (err) {
// handle error
}
if(doc != null)
{
if(!doc.username)
{
//handle case
}
else
{
//handle case
}
}
});
要获得解决方案,请检查以下内容。 1.检查您定义的模型名称或所有模型所在文件夹的名称必须正确,因为在我定义所有模型的“模型”文件夹中,我使用了不同的模型名称,因此没有名为该名称的模型,这就是我遇到的错误。
2.检查其所在的架构名称或文件夹名称。您得到的错误是哪一行?