2015-10-24 42 views
0

mongo的新功能。試圖查詢數據庫,它總是返回我的console.log'this user exists',無論他們是否真的做。它通過我的console.log來確定它在登錄路由中的功能。我該如何解決它?這裏是我的代碼:mongo查詢總是返回爲真

var checkCredentials = function(userName, password) { 
    console.log('made it to checkCredentials()'); 
    User.find({ 
     "name" : userName.toLowerCase(), 
     "password" : password 
    }), 
    function(error, user) { 
     console.log('made it to function in login route'); 
     if (error) { 
      console.log(error) 
     } 
     if (userName.toLowerCase && typeof userName.toLowerCase && password && typeof password !== 'undefined') { 
      console.log('this user exists'); 
     } 
    }(); 
} 

更新的代碼仍然不工作:

var checkCredentials = function(userName, password) { 
    console.log('made it to checkCredentials()'); 
    User.findOne({ 
     "name" : userName.toLowerCase(), 
     "password" : password 
    }), 
    function(error, user) { 
     if(error){ 
      console.log(error); 
     } 
     console.log(user); 
    }(); 
} 
+0

這是正確的,是什麼問題?如果用戶不存在,查詢也會解析,您不檢查。 –

+0

可能您需要檢查是否存在'user' –

+0

@Michelem我試圖根據名稱值匹配以及密碼值匹配確定用戶是否存在。它總是返回值,儘管它們確實不存在,但它們與db中的值相匹配。 – Mike

回答

0

此代碼結束了工作。我不知道爲什麼它最初不工作。我最終刪除它,重新輸入它,並且它工作。不知道問題是什麼。

var checkCredentials = function(userName, password, res) { 
    User.findOne({ 
     "name" : userName, 
     "password" : password 
    }, function(error, user) { 
     if (error) { 
      return handleError(error); 
     } else if (user == null) { 
      console.log('no match'); 
      res.send('noMatch'); 
     } 
    }); 
}