#node.js #session #routes #express-4
#node.js #сессия #маршруты #экспресс-4
Вопрос:
я совсем новичок в node, и я работаю над этой проблемой уже несколько часов, но мне не удается найти решение: / Возможно, вы сможете мне помочь 🙂
Я экспортировал свои маршруты из приложения в routes.js . Там у меня есть СООБЩЕНИЕ для процесса входа в систему. При входе в систему я хочу передать идентификатор пользователя из банка данных в сеанс для последующего использования (например, socket io). Как я должен это построить? Я пробовал несколько настроек, но, похоже, я этого не понимаю.
app.js
var cookieParser = require('cookie-parser');
var session = require('express-session');
var sessionStore = new session.MemoryStore();
app.use(cookieParser('lts session'));
app.use(session({ secret: 'lts session', cookie: { maxAge: 600000 }, store : sessionStore}));
var router = require('./modules/routes.js');
app.use(router);
routes.js
router.post('/', function(req, res) {
....
req.session.name = admins[id].name;
req.session.userId = id;
...
};
Позже я управляю своим сеансом, регистрируя sessionStore.
Комментарии:
1. Это может помочь будущим читателям, если вы расскажете, какие «настройки» вы пробовали и как они не решают вашу проблему
2. Вы смотрели на express-session ?
3. Я использую экспресс-сессию. Моя проблема в том, что эти переменные req.session не сохраняются. Прямо сейчас я использую app.post и т. Д. Вместо router.post …. по-прежнему нет прогресса :/
Ответ №1:
Если вы манипулируете своими переменными сеанса, просто используйте:
req.session.save()
Это сэкономит ваши сеансовые манипуляции.
Пример:
router.post('/', function(req, res) {
....
req.session.name = admins[id].name;
req.session.userId = id;
req.session.save()
...
};