sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB:error al establecer el índice TTL en la colección:sesiones

Como dije en su comentario, esencialmente Express está recibiendo conexiones antes de que el almacén de sesiones esté completamente conectado. La solución es esperar a que se produzca la conexión antes de permitir que su aplicación comience a escuchar.

Puede evitar este problema utilizando una devolución de llamada en la creación de MongoStore o pasando una conexión ya activa.

Ejemplo usando connect-mongo Devolución de llamada

var sessionStore = new MongoStore({ url: 'someConnectionUrl', db: 'audio-drop' }, function(e) {

  var cookieParser = express.cookieParser('waytoblue');
  app.use(cookieParser);

  app.use(express.session({
    store: sessionStore
  }));

  app.listen();
});

Ejemplo de mangosta simple

var mongoose = require('mongoose');

mongoose.connect('localhost', function(e) {
  // If error connecting
  if(e) throw e;

  var sessionStore = new MongoStore({ mongoose_connection: mongoose.connection }),
      cookieParser = express.cookieParser('waytoblue');

  app.use(cookieParser);

  app.use(express.session({
    store: sessionStore
  }));

  app.listen();
});