Как сохранить сессию с узлом.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 ответов


взгляните на эту серию из DailyJS. Он использует MongoDB и управление сеансами

http://dailyjs.com/tags.html#lmawa


У меня нет опыта работы с Node.js или Express, поэтому я не могу сразу понять, что не так с вашим подходом. Тем не менее, я сделал экспресс-использование MongoDB для хранения сеансов для флэш-сообщений и других сеансов.

вы можете увидеть мой исходный код для простого URL shortener здесь (это на самом деле делает URL - адреса довольно длинными на данный момент-это было просто упражнение ;)). Я использую сеанс для хранения списка URL-адресов, которые текущий пользователь сократил.

Это не очень, но я знаю, что это работает.