Tôi có cùng câu hỏi với bạn và giải pháp của robertklep cũng không phù hợp với tôi. Tôi nhận thấy khi dịch vụ MongoDB bị dừng, một sự kiện lỗi được kích hoạt, nhưng kết nối .readyState vẫn là 1 (đã kết nối). Đó có thể là lý do tại sao nó không tự động kết nối lại.
Đây là những gì tôi có bây giờ:
var db = mongoose.connection;
db.on('connecting', function() {
console.log('connecting to MongoDB...');
});
db.on('error', function(error) {
console.error('Error in MongoDb connection: ' + error);
mongoose.disconnect();
});
db.on('connected', function() {
console.log('MongoDB connected!');
});
db.once('open', function() {
console.log('MongoDB connection opened!');
});
db.on('reconnected', function () {
console.log('MongoDB reconnected!');
});
db.on('disconnected', function() {
console.log('MongoDB disconnected!');
mongoose.connect(dbURI, {server:{auto_reconnect:true}});
});
mongoose.connect(dbURI, {server:{auto_reconnect:true}});