2012-04-27 32 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

相关问题