Node.js和mongoose(mongodb)错误无法读取属性'';空的

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

我有一个findOne查询,当我验证它是否返回一个空文档时,我会被抛出一个错误,说“不能读取null的属性”username“。当我尝试访问if(!doc.username)中的doc.username时,就会发生这种情况{

我的代码:

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.检查其所在的架构名称或文件夹名称。

您得到的错误是哪一行?