sql >> Database teknologi >  >> NoSQL >> MongoDB

NodeJS + Express + Mongo Session-lagring

Det endte med at være et problem for de forskellige moduler:connect-session-mongo / express-session-mongo / connect-mongo, ved hjælp af connect 2.0.1 og Express using connect 1.8.5.

Tilsyneladende forhindrede afhængighedssammenstødet her sessionsbutiksmodulerne i at få adgang til egenskaben 'req.secret'.

For at få det til at fungere, sluttede jeg med at bruge modulet connect-mongodb, der stadig bruger connect 1.8.5, ligesom Express.

Grunden til, at jeg ikke kunne få connect-mongodb til at fungere før, var brugerfejl, jeg prøvede for hårdt at bruge copy/paste fra online eksempler i stedet for mit hoved.

Her er konfigurationskoden, der endte med at virke for 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());  
});

Håber dette hjælper nogen andre, der løber ind i dette problem. Hvis du har nogle forslag/forbedringer til denne løsning, vil jeg være glad for at høre det. :)



  1. Flersproget datamodellering på MongoDB

  2. MongoDB :Aggregationsramme :Hent sidst daterede dokument pr. grupperings-id

  3. Ikke i stand til at trække fra indlejret array og forespørgselsreturunderdokument ved hjælp af MongoTemplate

  4. Mongodb startadvarsler efter opdatering