JavaScript和MongoDB使用Find()返回undefined

时间:2016-10-10 07:22:28

标签: javascript mongodb mean

我正在尝试使用JavaScript和MongoDB来检查数据集中是否存在用户名。我希望它返回一个简单的真或假的陈述。我使用以下语法:

checkUserName = function (usernameIn) {

  User.findOne({username: usernameIn}, function(err, item) {
    if (err) throw err;
            if(item === null) {
              console.log("Does not exist")
                return false;
            }
            else {
                console.log("Username already exists.")
                return true;
            }

    });

但是,当我调用该函数时,它只返回undefined而不是true或false语句。

编辑:

我在脚本顶部调用var User = mongoose.model('Users')。该函数确实正确执行conole.log()操作,但是当我执行var result = checkUserName(username)时它不会返回结果。

非常感谢

1 个答案:

答案 0 :(得分:0)

Try This:

Write a callback to a function when it is called.

checkUserName = function (usernameIn,callback) {

  User.findOne({username: usernameIn}, function(err, item) {
    if (err) throw err;
            if(item === null) {
              console.log("Does not exist")
                return callback(false);
            }
            else {
                console.log("Username already exists.")
                return callback(true);
            }

    });