Задать вопрос
mannaro
@mannaro
Умею профессионально гуглить

Connect-mongo создает новую сессию при каждом обновлении страницы?

Здравствуйте! Connect-mongo при каждом обновлении страницы создает новую сессию. За 10 минут их может набраться ~50 штук (и это только я). Помогите пожалуйста, как решить данную проблему?

Код
var express = require('express');
var MongoStore = require('connect-mongo')(express);
var pages = require('./routes/pages');

var db = require('mongoose').connect('mongodb://user:password@server:port/db');
var app = express();
var server = require('http').createServer(app).listen(process.env.PORT);

app.set('db', db);
app.set('views', 'views');
app.set('view engine', 'jade');
app.use(express.cookieParser());
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(express.session({
  store: new MongoStore({
    url: 'mongodb://user:password@server:port/db',
    stringify: false
  }),
  cookie: {
    maxAge: 24 * 360000
  },
  key: 'xxxxxx',
  secret: 'ararar'
}));
app.use(app.router);
app.use(express.static('public'));

app.get('/', function (req, res) { res.end('hello world') });
  • Вопрос задан
  • 4300 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
pomeo
@pomeo
Насколько я помню это зависит от последовательностей расположения app.use. Плюс ваш код нестандартен для express.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
ch3sh1r3
@ch3sh1r3
clear_interval, не?
Ответ написан
dizballanze
@dizballanze
Software developer at Yandex
Почему не express-session-mongo?
Ответ написан
@likejavascript
Не знаю поможет ли Вам, но лично я при описании app.use(express.session) использую соединение mongoose:

var db = require('mongoose').connect('mongodb://user:password@server:port/db');
app.use(express.session({ store: new MongoStore({ mongoose_connection: db.connections[0] }) }));

У меня при каждом обновлении страницы новая сессия не создается.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы