MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Изчакване на NodeJS + Mongoose при връзка

Справих се с този проблем, като добавих една допълнителна стъпка във всеки рутер, където използвам DB.

Малко е разхвърлян, но работи и 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();
};

PS Ако знаете решението по-добре, моля, уведомете ме.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb – Грешка при Mongoimport невалиден знак

  2. Използване на библиотека mongodb-stitch в Angular 4

  3. MongoDB Покажи текущия потребител

  4. Mongodb уникален рядък индекс

  5. MongoDB bind_ip грешка:bind() неуспешно errno:99 Не може да се присвои искан адрес за сокет