2012-04-27 31 views
0

我使用mongoskin從節點連接到mongodb,但連接時發生異常,如果mongodb不可用,並且我似乎無法找到處理此問題的方法。如果mongodb未運行,如何處理mongoskin拋出的異常?

我的連接和查詢代碼看起來像這樣...

var mongo = require('mongoskin'); 
var conn = 'localhost:27017/dbname'; 

mongo.db(conn).collection('collection').find({ date: { $gte: now } }, { sort: [['date', 1]]}).toArray(function(err, result) { 
       if (err) throw err; 
       callback(null, result) 
      }); 

我應該如何處理呢?

謝謝,西蒙

回答

2

throw err;是沒用在這裏 - 沒有外部範圍捕獲錯誤,因爲它是由事件循環作爲一個異步函數調用。 node.js中的約定是在第一個arg包含錯誤(或者爲null,如果沒有)時觸發回調,第二個arg包含命令結果。

所以你可能只是想:

callback(err, result) 

甚至只是直接傳遞迴調。在您的回調代碼中,檢查err是否爲空,然後處理那裏的情況。

+0

謝謝,這是現貨!我只是在學習節點,並從某處複製並粘貼了這一行......我以爲快遞公司會爲我處理並處理這個問題,但現在我明白了。 – Simon 2012-04-28 09:53:21

相關問題