MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

NodeJS + Express + Mongo Session съхранение

Това приключи като проблем на различните модули:connect-session-mongo / express-session-mongo / connect-mongo, използвайки connect 2.0.1 и Express, използвайки connect 1.8.5.

Очевидно сблъсъкът на зависимости тук е попречил на модулите за съхранение на сесии да имат достъп до свойството „req.secret“.

За да проработи, прекратих използването на модула connect-mongodb, който все още използва connect 1.8.5, точно като Express.

Причината, поради която не можех да накарам connect-mongodb да работи преди обаче, беше потребителска грешка, опитвах се твърде много да използвам копиране/поставяне от онлайн примери вместо от главата си.

Ето конфигурационния код, който в крайна сметка работи за мен с 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());  
});

Надявам се това да помогне на всеки друг, който се сблъска с този проблем. Ако имате някакво предложение/подобрение за това решение, ще се радвам да го чуя. :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Запитване за метаданни на MongoDB GridFS (Java)

  2. Добавяне в Mongo DB и проблемът с идентификатора

  3. как да актуализирате вложен обект на mongoose документ само за предоставени ключове

  4. MongoDB:Проблем с DNS на resolv.conf, свързващ се с MongoDB

  5. Заявка MongoDB за множество ObjectIDs в Array