sql >> Database >  >> NoSQL >> MongoDB

NodeJS + Express + Mongo Sessie-opslag

Het werd uiteindelijk een probleem van de verschillende modules:connect-session-mongo / express-session-mongo / connect-mongo, met connect 2.0.1 en Express met connect 1.8.5.

Blijkbaar verhinderde de afhankelijkheidsconflict hier dat de sessieopslagmodules toegang kregen tot de eigenschap 'req.secret'.

Om het te laten werken eindigde ik met het gebruik van de module connect-mongodb die nog steeds connect 1.8.5 gebruikt, net als Express.

De reden dat ik connect-mongodb niet eerder kon laten werken, was echter een gebruikersfout, ik probeerde te hard om kopiëren/plakken van online voorbeelden te gebruiken in plaats van mijn hoofd.

Hier is de configuratiecode die uiteindelijk voor mij werkte met 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());  
});

Ik hoop dat dit iemand anders helpt die tegen dit probleem aanloopt. Als u een suggestie/verbetering heeft voor deze oplossing, hoor ik het graag. :)



  1. MongoDB $isoWeekYear

  2. $lookup meerdere niveaus zonder $unwind?

  3. How-to:gebruik de Apache HBase REST-interface, deel 3

  4. object in array-schema in Mongoose duwen