MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB:Erro ao definir o índice TTL na coleção:sessões


Como eu disse em seu comentário, essencialmente o Express está recebendo conexões antes que o armazenamento de sessão esteja totalmente conectado. A solução é aguardar a conexão ocorrer antes de permitir que seu aplicativo comece a ouvir.

Você pode evitar esse problema usando um retorno de chamada na criação do MongoStore ou passando uma conexão já ativa.

Exemplo usando connect-mongo Retorno de chamada

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

Exemplo simples de mangusto

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