Mongojs是mongodb-native库的瘦包装器,但是唯一的问题是我无法监听错误?
需要处理的主要错误是连接错误,无法连接或丢失连接。这是到目前为止我尝试过的示例。
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;
};
添加进程侦听器不是最佳选择。
process.on('uncaughtException', function(err) {
console.log(err);
});
我认为这对您不起作用:
db.on('error', function(err) {
console.log('Catch ', err);
});
因为这是一个最终在Github上发布的问题,现在已经解决了,所以在这里看看...所以您现在可以抓住所有问题(我在某些编码中使用了它,并且可以正常工作!)。
您可以走得更远,并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! ");
}
});
...知道该错误发生在哪里。这对我来说真的很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句