0
我正在尝试使用JavaScript和MongoDB来检查用户名是否存在于数据集中。我期待它能够返回一个简单的真或假的陈述。我正在使用以下语法:使用Find()返回undefined 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;
}
});
但是,当我调用该函数时,它只返回未定义,而不是true或false语句。
编辑:
我在做剧本的顶部调用VAR用户= mongoose.model( '用户')。该函数确实正确地执行了conole.log()操作,但是当我执行var result = checkUserName(username)时,它不会返回结果。
非常感谢
看来,“用户”的对象不是在函数内部访问。 –
很多道歉,我叫var User = mongoose.model('Users');在函数的顶部。 console.log()事件被正确触发,但函数的返回值只是未定义的。 – Dan
这是因为数据库操作是异步的。您将不得不使用承诺或回调来确保在您尝试使用该函数的返回时,数据库读取完成。 –