LINUX.ORG.RU

node.js сессии

 , ,


0

1

Node.js/Express 4. Сессии храню в Postgresql, модуль 'connect-pg-simple'.
В шаблоне index.jade значение sess.views выводится случайным образом +2 или +3.
Должно быть строго +1.

file: app.js

var pg = require('pg');
var session = require('express-session')
var pgSession = require('connect-pg-simple')(session);

var app = express();

// require routes
var routes  = require('./routes/index');

// sessions Postresql
app.use(session({
  store: new pgSession({
    pg : pg,
    conString : config.session.DbURL,
    tableName : config.session.table
  }),
  secret: config.session.cookieSecret,
  cookie: { maxAge: config.session.cookieMaxAge },
  saveUninitialized: true,
  resave: true
}));


app.use(function(req, res, next) {
  var sess = req.session
  if (sess.views) {
    sess.views++;
  } else {
    sess.views = 1;
  }
  next();
})

★★

Последнее исправление: WinLin2 (всего исправлений: 2)

Наверняка браузер favicon запрашивает, а вы статику тоже под сессии зарулили.

Лог запросов выведите да посмотрите.

Vit ★★★★★
()
Ответ на: комментарий от Vit

Вы правы, вот вывод (sess.views, req.url) из функции увеличения sess.views:

130 /
131 /css/bootstrap.min.css
131 /css/bootstrap-theme.min.css
131 /js/jquery.min.js
131 /js/bootstrap.min.js
132 /
133 /css/bootstrap.min.css
133 /js/jquery.min.js
134 /css/bootstrap-theme.min.css
134 /js/bootstrap.min.js
135 /

Для «/» значения меняются 130,132,135.
Это все из каталога /public/(js|css|...|favicon.ico).
Как исправить?

WinLin2 ★★
() автор топика
Ответ на: комментарий от WinLin2

Как исправить?

А зачем? Работает же.

Если сильно хочется, можно статиксервер до плагина сессий воткнуть на другой роут. Почитайте про роутинг и монтирование «подприложений». Все это описано многократно. Я сам экспрессом не пользуюсь, поэтому сходу код не накорябаю - долго вспоминать.

Лучше всего просто посмотреть исходник экспресса, чтобы понимать, как проходит запрос от начала до конца. Тогда не будет вопросов, в какой последовательности и как переклеивать между собой плагины.

Vit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.