node.js中的Mongodb findone查询&;快速超时

node.js中的Mongodb findone查询&;快速超时,node.js,mongodb,express,Node.js,Mongodb,Express,我试图在数据库中找到一个密码和用户名匹配的用户。如果我写了正确的用户名和密码,一切都会顺利进行。但是,如果我写错了密码,例如,我会在大约一分钟后超时 有没有关于我如何解决这个问题的建议 exports.bsLogin = function(req, res) { console.log('************ bslogin ************'); var body = req.body; var username2 = body.username; var password2 =

我试图在数据库中找到一个密码和用户名匹配的用户。如果我写了正确的用户名和密码,一切都会顺利进行。但是,如果我写错了密码,例如,我会在大约一分钟后超时

有没有关于我如何解决这个问题的建议

exports.bsLogin = function(req, res) {
console.log('************ bslogin ************');
var body = req.body;
var username2 = body.username;
var password2 = body.password;
db.collection('users', function(err, collection) {
    collection.findOne({username:username2, password:password2}, function(err, item) {
        if (err) { 
            res.render('bslogin',
                { title : 'Hello', error : 'Username or Password is incorrect' }
            );
            return;
        }
        if (item) {
            res.writeHead(302, {
                'Location': '/backstageArea'
            });
            res.end();
        }
    });
});
};

它超时是因为当既没有
错误
也没有
时,不会给出响应

根据当前的响应,可能会修改第一个
if
,以处理MongoDB错误和缺少项目:

if (err || !item) {
    res.render('bslogin',
        { title : 'Hello', error : 'Username or Password is incorrect' }
    );
    return;
}
或者,添加一个
else
块以分别响应每个场景:

if (err) {
    /* ... */
} else if (item) {
    /* ... */
} else {
    /* ... */
}

如果既没有
错误
也没有
,则不会向您提供响应。添加
else
if(!err&&!item)
块。@jonathan lonowski谢谢。成功了。你愿意把它作为一个答案吗?