MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

NodeJS + Express + Mongo Session-Speicher

Es endete mit einem Problem der verschiedenen Module:connect-session-mongo / express-session-mongo / connect-mongo, using connect 2.0.1 und Express using connect 1.8.5.

Anscheinend hat der Abhängigkeitskonflikt hier verhindert, dass die Sitzungsspeichermodule auf die Eigenschaft 'req.secret' zugreifen.

Damit es funktioniert, habe ich aufgehört, das Modul connect-mongodb zu verwenden, das immer noch connect 1.8.5 verwendet, genau wie Express.

Der Grund, warum ich Connect-Mongodb vorher nicht zum Laufen bringen konnte, war ein Benutzerfehler, ich habe zu sehr versucht, Kopieren/Einfügen aus Online-Beispielen anstelle meines Kopfes zu verwenden.

Hier ist der Konfigurationscode, der bei mir mit connect-mongodb funktioniert hat:

var Session = require('connect-mongodb');

app.configure('production', function(){
  var oneWeek = 657450000;
  app.use(express.static(__dirname + '/../public', { maxAge: oneWeek }));

  var session = express.session({
        store: new Session({
              url: 'mongodb://localhost:27017/test', 
              maxAge: 300000
        }),
        secret: 'superTopSecret' 
  });
  app.use(session);

  app.use(mongooseAuth.middleware());
  app.use(require('./mySite').middleware());
  app.use(express.methodOverride());
  app.use(express.errorHandler());  
});

Hoffe, das hilft allen anderen, die auf dieses Problem stoßen. Wenn Sie Vorschläge/Verbesserungen zu dieser Lösung haben, würde ich mich freuen, sie zu hören. :)