2014-05-01 6 views

Odpowiedz

8

Oprogramowanie pośrednie zostało wydobyte z rdzenia i przeniesione do poszczególnych modułów. Zmienia to sposób konfigurowania aplikacji, ale możesz użyć tego samego oprogramowania pośredniego, co wcześniej. W dokumencie overview wyjaśniającym, jak przeprowadzić migrację z wersji 3.x do 4.x, wymieniono moduły, których można użyć jako zamienników oprogramowania pośredniego Connect.

Składnia będzie nieznacznie różne, jak jawnie zainstalować moduły, takie jak express-session i oświadczenia app.use zostały zmienione w celu odzwierciedlenia tego. Opcje przekazane do tych modułów są jednak takie same, jak w przypadku oprogramowania pośredniego Connect ... aby można było przekazywać dane connect-mongo do express-session i dalej je przeglądać.

Więc nie musisz się zmieniać, chyba że pojawi się inny problem, który nie jest jasny w pierwotnym pytaniu ... i mogą istnieć inne problemy, jeśli masz dużą, ustaloną aplikację. Ale jeśli podążasz za samouczkiem, powinieneś być wystarczająco wcześnie, aby to nie było poważnym problemem.

Edit: Wygląda na to, istnieje również discussion about Express 4 na stronie connect-mongo github. Istnieje więcej przykładów nie o tym, jak wykorzystać ten moduł z nowej wersji Express, ...

Edycja 2: kod, odwoływać się kilka razy na stronie github, wygląda następująco:

var session = require('express-session'); 
var MongoStore = require('connect-mongo')(session); 

app.use(session({ 
    secret: 'youshouldputyourownsecrethere', 
    store: new MongoStore({ 
     db    : mongoose.connection.db, 
    }) 
})); 
+0

zamieniam ten kod z dokumentacji 'var session = require ('express-session'), RedisStore = require ('connect-redis') (session); app.use (session ({store: new RedisStore (options), secret: 'keyboard cat'})) ' z' var mongoStore = require ('connect-mongo') (session); 'i otrzymuję TypeError: Nie można odczytać właściwości 'Store' of undefined –

+2

Poprawka jest (od 15 minut, kiedy opublikował poprawkę do NPM): ** przełącz na [connect-mongostore] (https://www.npmjs.org/package/ connect-mongostore) **. Ich zespół zyskuje coraz więcej na wsparcie [Express 4.0] (https://github.com/diversario/connect-mongostore/pull/8). – charneykaye

+0

To opcja, ale wygląda na to, że składnia w mojej drugiej edycji działa, dopóki autor nie zrobi aktualizacji, aby uczynić parametr '(session)' niepotrzebny. Wygląda więc bardziej na "która opcja jest najbardziej odpowiednia" niż jedna lub druga, która jest ściśle prawidłowa. –