MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB :Erreur lors de la définition de l'index TTL sur la collection : sessions

Comme je l'ai dit dans votre commentaire, Express reçoit essentiellement des connexions avant que le magasin de session ne soit entièrement connecté. La solution consiste à attendre que la connexion se produise avant de permettre à votre application de commencer à écouter.

Vous pouvez éviter ce problème en utilisant un rappel lors de la création de MongoStore ou en transmettant une connexion déjà active.

Exemple utilisant connect-mongo Rappel de

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

Exemple simple de mangouste

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