मैंने प्रत्येक राउटर में एक अतिरिक्त चरण जोड़कर इस समस्या को संभाला जहां मैं डीबी का उपयोग करता हूं।
यह थोड़ा गड़बड़ है लेकिन यह काम करता है और 100% कोई लीक नहीं है।
कुछ इस तरह:
// 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();
};
पुनश्च यदि आप समाधान बेहतर जानते हैं, तो कृपया मुझे बताएं।