Mongo查询总是返回数据库中存在的值,当它不是

时间:2015-10-23 18:11:45

标签: mongodb mongoose

我正在尝试在mongodb中查询名称字段,并使用以下代码我总是得到该值为重复的响应。

var checkUserName =  function (userName, email, res){
    User.findOne({ name : userName }, function () {
        if(userName  && typeof userName !== 'undefined'){
            res.send("duplicate");
        }else{
            checkEmail(email);
        }
    });
}

1 个答案:

答案 0 :(得分:1)

您目前正在完全忽略数据库中的答案,只是再次检查您的输入。这不行。 Mongoose将查询的答案作为回调函数的第二个参数返回(第一个参数始终是信号错误) - 尝试这样的事情:

var checkUserName =  function (userName, email, res){

  User.findOne({ name : userName }, function (err, userFromDb) {
    if (err) {
        console.log("there was an error: " + err;
        return res.send("err: " + err.message);
    }
    if(userFromDb) {
        res.send("duplicate");
    } else {
        checkEmail(email);
    }
  });
}