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
這是因爲數據庫操作是異步的。您將不得不使用承諾或回調來確保在您嘗試使用該函數的返回時,數據庫讀取完成。 –