単一サーバーのセットアップで、ドライバーからイベントを受け取ります。
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');
) を使用している場合、接続されているすべてのセット メンバーをシャットダウンしても、同じイベントはトリガーされません。
私はネイティブ ドライバーの内部構造に詳しくないので、これがバグなのか、それともこの状態を手動で検出する必要があるのか疑問に思っています。
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');
});
}
});