2015-05-14 82 views
1

我正在嘗試使用mongodb作爲數據庫來創建nodejs應用程序。我需要檢查用戶名是否存在於mongodb中。如果用戶名存在,它將輸出「用戶名不可用」,否則將使用該用戶名列出所有用戶詳細信息。檢查使用貓鼬是否存在於mongodb中的文檔

var userSchema = require('../schemas/user'); 

exports.collect = function(req,res) { 
    userSchema.find({ username: "bob" }).exec(function(err,display) { 
     if(err){ 
      console.log(err); 

     } 
     else 
     { 
      if(display=='[]'){ 
       res.send("username not available"); 
      } 

      else{ 
       res.send(display) 
      } 

     } 

    }); 
}; 

是否有任何替代或簡單的方法來執行此操作?

+2

可能是'display.length === 0'比單純檢查空字符串 – vanadium23

回答

2

如果你問我,我會從控制器中分離出整個邏輯,但我不打算告訴你。我會使用findOne,因爲它只能找到一條記錄。如果user不可用,您將知道該用戶名不可用。不要忘記,即使發生錯誤,您仍然希望輸出「一些」數據,因爲您不希望客戶端等到它超時。

var userSchema = require('../schemas/user'); 

exports.collect = function(req,res) { 
    userSchema.findOne({username: "bob"}).exec(function(err, user) { 
    if (err) { 
     console.log(err); 

     // Handle the error properly here, we should not continue! 
     return res.sendStatus(500); 
    } 

    if (!user) { 
     return res.send("username not available"); 
    } 

    // Don't know what you want to do with it, I just display it like this 
    return res.json(user); 
    }); 
}; 
+0

謝謝!我正在尋找是否有其他替代方法,如內置函數:)但有人懷疑,我們不應該在最後添加分號嗎? – nitroman

+0

對不起,是的。 –