sql >> Databasteknik >  >> NoSQL >> MongoDB

NodeJS + Mongoose timeout vid anslutning

Jag hanterade det här problemet genom att lägga till ytterligare ett steg i varje router där jag använder DB.

Det är lite rörigt men det fungerar och 100% inga läckor.

Något så här:

// 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();
};

PS Om du känner till lösningen bättre, vänligen meddela mig.



  1. MongoDB-prestanda - att ha flera databaser

  2. MongoDB $isArray

  3. MongoDB:s prestanda på aggregeringsfrågor

  4. Spring Redis sorteringsnycklar