gpt4 book ai didi

node.js - 监听 "mongojs"连接错误

转载 作者:可可西里 更新时间:2023-11-01 10:44:12 27 4
gpt4 key购买 nike

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 source

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上发的一个issue,终于解决了,看看here ...所以您现在可以发现它的任何问题(我在我的一些编码中以这种方式使用它并且它正在工作!)。

你可以更进一步,在你的回调中传递一个 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! ");
}
});

...知道错误发生的地方。这对我来说非常好。

关于node.js - 监听 "mongojs"连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18734878/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com