sql >> Databasteknik >  >> NoSQL >> MongoDB

NodeJS + Express + Mongo Session-lagring

Det slutade vara ett problem för de olika modulerna:connect-session-mongo / express-session-mongo / connect-mongo, med connect 2.0.1 och Express med connect 1.8.5.

Tydligen hindrade beroendekrocken här sessionslagringsmodulerna från att komma åt egenskapen 'req.secret'.

För att få det att fungera slutade jag med modulen connect-mongodb som fortfarande använder connect 1.8.5, precis som Express.

Anledningen till att jag inte kunde få connect-mongodb att fungera tidigare var dock användarfel, jag försökte för mycket att använda kopiera/klistra in från onlineexempel istället för mitt huvud.

Här är konfigurationskoden som slutade fungera för mig med connect-mongodb:

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

Hoppas detta hjälper någon annan som stöter på detta problem. Om du har några förslag/förbättringar på denna lösning skulle jag vara glad att höra det. :)



  1. Hur får man data från befintlig MongoDB-databas?

  2. Hur pushar man till en MongoDB-array med AngularJS?

  3. uppdatera i mongodb med $in-fråga?

  4. Kör MongoDump / MongoRestore i C#