使用单一服务器设置,我从驱动程序接收事件。MongooseJS应该在副本集断开连接上发射事件吗?
mongoose.connect('mongodb://localhost/mydb');
mongoose.connection.on('disconnected', function() {...});
mongoose.connection.on('error', function(err) {...});
当使用副本集(mongoose.connect('mongodb://localhost:27017/mydb,mongodb://localhost:27018/mydb');
),关闭所有连接的集成员不会触发那些相同的事件。
我不是很熟悉本机驱动程序的内部,我想知道这是否是一个错误,或者如果我需要手动检测到这种情况。
我用猫鼬3.6.17(MongoDB的驱动程序1.3.18)
三世猫鼬,我想这与相同的结果(无论从副本集中的事件)。
require('mongodb').MongoClient.connect("mongodb://localhost:27017,localhost:27018/mydb", function(err, db) {
if (db) {
db.on('disconnected', function() {
console.log('disconnected');
}).on('error', function(err) {
console.log('error');
});
}
});
感谢您的回复。我确实试图通过强行断开连接和重新连接来缓解单一事件问题。这似乎工作,除了我的客户现在正在“连接被应用程序销毁”错误(这是有道理的)。所以1.3.19的修正是个好消息,至少对于单连接来说。 – MoatMonster
我想我通过回答我自己的问题搞砸了。我想,我应该编辑原始问题。 – MoatMonster