W tej chwili przechowuję dane sesji w "magazynie pamięci", który jest dostarczany w pakiecie z połączeniem (express). Ale chcę/muszę to zmienić w produkcji.node.js + express.js: obsługa sesji z mongodb/mongoose
Aplikacja używa mongotb i zainstalowałem mangusta do obsługi wszystkich komunikatów db.
np. Połącz się z DB po uruchomieniu mojej aplikacji:
var mongo = require('mongoose');
mongo.connect('mongodb://localhost/myDb');
mongo.connection.on('open', function() {
app.listen(3000);
}
znalazłem moduł connect-MongoDB, ale nie wiem, jak wdrożyć go za pomocą mongoose, lub jeśli jest to rzeczywiście możliwe? muszę dodać coś takiego:
var mongoStore = require('connect-mongodb');
// ...
app.use(express.session({
secret: 'topsecret',
maxAge: new Date(Date.now() + 3600000),
store: new mongoStore({ db: 'myDb' })
}));
czy muszę definiować moje połączenie db drugi raz stosując bezpośrednio MongoDB moduł?
Dobra robota! Jedynym dodatkiem, który spowodował moje kłopoty, jest upewnienie się, że twój "app.use (app.router);" jest umieszczony po "app.use (express.session ...".) –
dzięki za informacje. edytować odpowiedź, aby to uwzględnić. – pkyeck
Dla każdego, kto próbuje to zrobić ostatnio: wydaje się, że od wersji 0.9.9 musisz ustawić express jako zmienny ('var express = require ('express')'), a następnie przekazać to do connect-mongo ('var MongoStore = require ('connect-mongo') (express)'). Działa to, ponieważ ekspres ujawnia wszystkie podstawowe części połączenia, a connect-mongo jest w rzeczywistości funkcją, która przyjmuje obiekt connect jako argument. –