node.js - MongooseJS 是否应该在副本集断开连接时发出事件?

标签 node.js mongoose node-mongodb-native

通过单个服务器设置,我从驱动程序接收事件。

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');),关闭所有连接的集合成员不会触发这些相同的事件。

我对 native 驱动程序的内部结构不太熟悉,我想知道这是否是一个错误,或者我是否需要手动检测这种情况。

我使用的是 Mongoose 3.6.17(mongodb 驱动程序 1.3.18)

Sans mongoose,我尝试了相同的结果(没有来自副本集的事件)。

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');
        });
    }            
});

最佳答案

我在 Mongoose 上也遇到了类似的问题,asked on SO还。最近,我发现this issue在 Mongoose GitHub 存储库上,导致 this issue在驱动程序存储库上。

Mongo 驱动程序没有多次发出任何这些事件,and today此问题已在 v1.3.19 上针对单个连接修复。
看来目前“无法修复”。

关于node.js - MongooseJS 是否应该在副本集断开连接时发出事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18363564/

相关文章:

node.js - 批量插入MongoDB和NodeJs

node.js - Mongoose 在更新前检查用户是否拥有文档

node.js - 使用 geoNear 时出现 node-mongodb-native 错误

node.js - 如何处理 node-mongodb-native 中的连接问题

javascript - NodeJS PTY 计时命令

javascript - MEAN堆栈中的动态html表单生成

node.js - 如何使用 kommunicate.io 从 Dialogflow 机器人触发自定义欢迎消息?

node.js - Azure托管 Node 应用程序找不到模块 'async/each'

node.js - 处理从 nodejs 与 mongo db 的连接丢失

node.js - 类型错误:无法读取未定义的属性 'getAppPath'