Tôi đã xử lý sự cố này bằng cách thêm một bước bổ sung trong mỗi bộ định tuyến mà tôi sử dụng DB.
Nó hơi lộn xộn một chút nhưng nó hoạt động và 100% không bị rò rỉ.
Một cái gì đó như thế này:
// file: 'routes/api/v0/users.js'
router
var User = require('../../../models/user').User,
rest = require('../../../controllers/api/v0/rest')(User),
checkDB = require('../../../middleware/checkDB');
module.exports = function (app) {
app.get('/api/v0/users', checkDB, rest.get);
app.get('/api/v0/users/:id', checkDB, rest.getById);
app.post('/api/v0/users', checkDB, rest.post);
app.delete('/api/v0/users', checkDB, rest.deleteById);
app.put('/api/v0/users', checkDB, rest.putById);
};
// file: 'middleware/checkDB.js'
var HttpError = require('../error').HttpError,
mongoose = require('../lib/mongoose');
// method which checks is DB ready for work or not
module.exports = function(req, res, next) {
if (mongoose.connection.readyState !== 1) {
return next(new HttpError(500, "DataBase disconnected"));
}
next();
};
Tái bút Nếu bạn biết giải pháp tốt hơn, vui lòng cho tôi biết.