Как сохранить сессию с узлом.js и mongodb?
Как получить сеансы, работающие с узлом.js, express@2.0.0 а монгодб? Теперь я пытаюсь использовать connect-mongo следующим образом:
var config = require('../config'),
express = require('express'),
MongoStore = require('connect-mongo'),
server = express.createServer();
server.configure(function() {
server.use(express.logger());
server.use(express.methodOverride());
server.use(express.static(config.staticPath));
server.use(express.bodyParser());
server.use(express.cookieParser());
server.use(express.session({
store: new MongoStore({
db: config.db
}),
secret: config.salt
}));
});
server.configure('development', function() {
server.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
server.configure('production', function() {
server.use(express.errorHandler());
});
server.set('views', __dirname + '/../views');
server.set('view engine', 'jade');
server.listen(config.port);
Я тогда на сервере.получить обратный вызов пытается использовать
req.session.test = 'hello';
чтобы сохранить это значение в сеансе, но оно не сохраняется между запросами.
вероятно, требуется что-то большее, чем это для хранения значений сеанса, как? Есть ли лучше документированный модуль, чем connect-mongo?
2 ответов
У меня нет опыта работы с Node.js или Express, поэтому я не могу сразу понять, что не так с вашим подходом. Тем не менее, я сделал экспресс-использование MongoDB для хранения сеансов для флэш-сообщений и других сеансов.
вы можете увидеть мой исходный код для простого URL shortener здесь (это на самом деле делает URL - адреса довольно длинными на данный момент-это было просто упражнение ;)). Я использую сеанс для хранения списка URL-адресов, которые текущий пользователь сократил.
Это не очень, но я знаю, что это работает.