MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przechowywanie sesji NodeJS + Express + Mongo

Skończyło się to problemem różnych modułów:connect-session-mongo / express-session-mongo / connect-mongo, używających connect 2.0.1 i Express używających connect 1.8.5.

Najwyraźniej kolizja zależności uniemożliwiła modułom przechowywania sesji dostęp do właściwości „req.secret”.

Aby to zadziałało, zakończyłem używanie modułu connect-mongodb, który nadal używa connect 1.8.5, podobnie jak Express.

Powodem, dla którego nie mogłem wcześniej uruchomić funkcji connect-mongodb, był błąd użytkownika. Próbowałem zbyt mocno używać kopiowania/wklejania z przykładów online zamiast głowy.

Oto kod konfiguracyjny, który ostatecznie zadziałał dla mnie z 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());  
});

Mam nadzieję, że pomoże to każdemu, kto napotka ten problem. Jeśli masz jakieś sugestie/ulepszenia dotyczące tego rozwiązania, chętnie je usłyszę. :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy mogę łatwo zwrócić wszystkie pola poddokumentu jako pola w dokumencie najwyższego poziomu za pomocą struktury agregacji?

  2. Uruchamianie kompasu MongoDB na komputerze Mac

  3. Przegląd MongoDB i równoważenia obciążenia

  4. MongoDB PHP przy użyciu $in z tablicą

  5. MongoDB liczy odrębną wartość?