2014-04-11 7 views
7

Ich bin von express 3.x zu migrieren express 4.xUpgrade von Express 3.x auf Express 4.x - Mongo Session-Speicher

ich Fragen habe einen Mongo Session-Speicher zu finden, die mit der neuen session Middleware arbeitet.

Bisher:

express 3.x hatte connect als Abhängigkeit, die mit gebündelten session Middleware in die Reihe kam.

Um Sitzungen in einer Mongo-Datenbank persistent zu machen, war die De-facto-Middleware connect-mongo.

Neue Weltordnung:

Jetzt mit express 4.x, connect ist nicht mehr eine Abhängigkeit.

Als solches wurde so ziemlich alle zuvor gebündelte Middleware in separate Middleware, wie session aufgeführt oben aufgeführt.

session nimmt einen store, aber da connect-mongo auf connect abhängt, ist mit express 4.x nicht kompatibel ist.

Frage:

Ich kann keine Informationen über finden, die Session-Speicher mongo zu verwenden, wenn zu express 4.x migrieren. Irgendwelche Vorschläge?

Antwort

14

connect-mongo arbeitet noch in express 4.x aber jetzt Sie in session statt express

Express 3.x passieren:

var express = require('express'); 
var mongoStore = require('connect-mongo')(express); // note parameter = express 

Express 4.x:

var session = require('express-session'); 
var mongoStore = require('connect-mongo')(session); // note parameter = session 

NPM:

Leider wurde die neueste Version von connect-mongo zum Zeitpunkt des Verfassens noch nicht in npm bereitgestellt.

EDIT: Die neueste Version von connect-mongo wurde npm

Sie können direkt die neueste Version entweder herunterladen Einsatz von github

oder eine Abhilfe ist ein temporäres Objekt zu erstellen:

{ 
    session: session 
} 

und übergeben Sie diese an mongo-connect:

var mongoStore = require('connect-mongo')({session: session}); 
+1

Ich habe immer noch Probleme damit. Erhalte diesen Fehler 'var Store = connect.Store || connect.session.Store; ^ TypeError: Kann die Eigenschaft 'Store' von undefined bei module.exports (/Users/vinitkumar/projects/javascript/node-twitter/node_modules/connect-mongo/lib/connect-mongo.js30:47) nicht lesen ' –

+0

@Vinit Ich bekam den gleichen Fehler msg; siehe die letzte Zeile der Antwort, es behebt das. – Venning

+0

@Vinit, hört sich an, als würdest du 'express' in' connect-mongo', nicht 'express-session' übergehen? –