2012-10-10 120 views
1

在我的應用程序中,我希望用戶輸入用戶名和密碼,然後用戶名首先使用查詢查詢在數據庫中檢查,如果用戶名發現則向用戶呈現新頁面。 問題是如果我輸入一個錯誤的用戶名和密碼,那麼它也呈現一個新的頁面,並且該頁面也沒有完全加載。 請告訴我什麼是錯誤。使用查找查詢無法在貓鼬中查找數據

在app.js我已經寫:

app.post('/profile',users.login); 

在users.js我已經寫:

exports.login=function(req,res){ 
    console.log("login called"); 
    PersonalInfo.findOne({ name:req.params.userName}, function(err,data){ 
     if(err) 
     { 
      console.log("find is not done"); 
      console.log(data); 
     } 
     else{ 
      res.render("/profilearea.ejs"); 
     } 
     }) 

}

回答

1

findOne查詢未能找到匹配的文件,這不被視爲錯誤。相反,'未找到'的情況由參數data指示,findOne回調爲null

findOne回調函數的代碼應該是這個樣子,而不是:

if(err || !data) 
    { 
     console.log("find is not done"); 
    } 
    else{ 
     res.render("/profilearea.ejs"); 
    } 
+0

PersonalInfo.findOne({名稱: '阿姆娜'},功能(ERR,文章){//}}名字阿姆娜存在在我的數據庫,但這也打印「發現沒有完成」...... @JohnyHK – ana

+0

@ana您的評論中的代碼有'posts'作爲第二個參數。這只是一個錯字嗎? – JohnnyHK

+0

PersonalInfo.findOne({ name:'amna'},function(err,post){//}}我想問這個帖子是哪個數據在find查詢中找到的@JohnyHK – ana