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“库的代码,它应该再次发出错误蒙古源。
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);
});发布于 2015-01-15 02:22:43
我觉得这对你不管用:
db.on('error', function(err) {
console.log('Catch ', err);
});因为这是一个发帖的问题,最终得到了解决,看看这里.因此,您现在可以在任何问题上捕获它(在我的一些编码中,我正以这种方式使用它,而且它正在工作!)
您可以更进一步,并在回调中传递一个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! ");
}
});...to知道错误发生在哪里。这对我来说真的很好。
https://stackoverflow.com/questions/18734878
复制相似问题