【发布时间】:2017-02-18 13:41:14
【问题描述】:
我正在尝试使用 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) 时它只是不返回结果。
非常感谢
【问题讨论】:
-
函数内部似乎无法访问“用户”对象。
-
许多道歉,我称之为 var User = mongoose.model('Users');在函数的顶部。 console.log() 事件被正确触发,但函数的返回只是提供为 undefined。
-
这是因为数据库操作是异步的。当您尝试使用函数的返回时,您将不得不使用承诺或回调来确保数据库读取立即完成。
标签: javascript mongodb mean