2012-03-19 115 views
0

我正在學習並嘗試使用node.js和mongoskin的簡單示例。這裏是我的功能如下Node.js和mongoskin錯誤處理問題

以下函數的問題是,如果mongodb服務器斷開,那麼我也得到「err = null」,因此不能捕獲連接錯誤。如果我重新啓動的node.js服務器(而MongoDB的服務器仍在斷開),我得到錯誤的 「[錯誤:無法連接到[服務器aa070:27017]」

// Process messages from client 
    app.post('/send', function(req, res){ 
    var message = { 
     id: i++, 
     nickname: req.param('nickname', 'Anonymous'), 
      text: req.param('text', ''), 
created_at: new Date() 
}; 

conn.chat_log.insert(message, function(err) { 
    if(err!==null){ 
    console.log(err); 
    } 
    else { 
    console.log(message); 
    console.log(err); 
    } 
}); 
res.json({status: 'ok'}); 
}); 
+1

確定蒙戈運行? – Swift 2012-04-09 01:53:31

回答

0

我是新來的節點.js和mongodb,但爲什麼使用if(err!==null)而不是if(err)?如果我的理解正確,難道這不能解決你的問題嗎?

+0

其實,我想我誤解了你的問題。抱歉。你是說當你無法連接到數據庫,你沒有得到一個值爲「null」的錯誤? – Akrasiac 2012-04-09 02:33:15

+0

我的意思是我需要一些方法來了解mongoDB沒有連接,只要它在node.js中斷開連接。所以該錯誤對象應該返回錯誤,如「MongoDB未連接」 – Swati 2012-04-26 11:20:43

0

不知道mongoskin,但對於節點蒙戈本機驅動程序(即mongoskin司機是建立在)對筆者說:

Note that there's no reason to pass a callback to the insert or update commands unless you use the safe:true option. If you don't specify safe:true, then your callback will be called immediately.