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

her*_*now 8 mongodb node.js

我有一个findOne查询,当我验证它是否返回一个空文档时,我会抛出一个错误,说'无法读取属性'用户名'为null'.当我尝试在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);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

有谁能解释一下这里发生了什么?

谢谢!

Pet*_*ons 10

查询成功,但没有找到任何匹配,所以无论errdoc为空.您需要检查是否doc为null并适当地处理该情况.