听“mongojs”连接错误

Mongojs是mongodb本地库的薄包装,但唯一的问题是我无法听错误?

需要处理的主要错误是连接错误,不能或丢失连接。 这是我迄今为止尝试过的例子。

var mongojs = require('mongojs'); var db = mongojs.connect('reallyRandomStringShouldGiveError', ['sessions', 'unknown']); // This does not work db.on('error', function(err) { console.log('Catch ', err); }); db.sessions.insert({ a: 1 }); db.unkknown.find({ a: 1}, function (err, result) { console.log(err, result); }); 

而来自“mongojs”库的代码应该再次发布错误的mongojs源代码

 var connect = function(config, collections) { var connectionString = parseConfig(config); var ondb = thunky(function(callback) { mongodb.Db.connect(connectionString, function(err, db) { if (err) return callback(err); that.client = db; db.on('error', function(err) { process.nextTick(function() { // Errors seems to be emitted again that.emit('error', err); }); }); callback(null, db); }); }); var that = new Database(ondb); ..... return that; }; 

添加进程监听器不是最好的select。

 process.on('uncaughtException', function(err) { console.log(err); }); 

我认为这不适合你:

 db.on('error', function(err) { console.log('Catch ', err); }); 

因为这是一个Github上发布的问题,最终得到解决,看看这里 …所以你现在可以捕捉它的任何问题(我正在使用它的方式,在我的一些编码,它正在工作!)。

你可以进一步,并在你的callback里面传递一个err参数,比如像这样:

 db.collection.insert( { foo: "foo_value" }, function(err) { if (err) { console.log(" Woops! The error took place here... "); } else { console.log(" Everything went neat! "); } }); 

…知道错误发生的地方。 这对我来说真的很好。