2016-07-10 3 views
1

Прежде чем перезагрузить или переместить на другую страницу, console.log(req.session) напечатайте точно, что я сохранил, но это уже не так. Я попробовал req.session.save(), req.session.regenerate ({..}) или использовал .save() и .reload() одновременно. Я не могу понять, почему это происходит. Я боюсь с этим 6 часов.Экспресс-сессия не сохраняет значение

app.js

var session = require('express-session'); 

app.use(session({ 
    cookie: { 
     maxAge:30 * 60 * 1000, 
     expires: 30* 60 * 1000, 
     httpOnly: true 
    }, 
    rolling: true, 
    resave: true, 
    saveUninitialized: true, 
    secret: '~~~~~' 
})); 

маршруты/index.js

router.get('/', function(req, res, next) { 
    req.session.test = true; 
    req.session.save(); 
    console.log(req.session); 
    res.render('index'); 
}); 
router.get('/reg', function(req, res){ 
    console.log(req.session); 
    res.render('another'); 
} 

Когда я получить доступ к 'локальный: 3000' консоли печати, как этот

Session { 
    cookie: 
    { path: '/', 
    _expires: 1800000, 
    originalMaxAge: 1800000, 
    httpOnly: true }, 
    test: true } 

Но если я иду на «localhost: 3000/reg», он исчез.

Session { 
    cookie: 
    { path: '/', 
    _expires: 1800000, 
    originalMaxAge: 1800000, 
    httpOnly: true } } 

упаковка ver.

  • "Экспресс": "~ 4.13.1",
  • "Экспресс-сессии": "^ 1.14.0"

ответ

2

Согласно the documentation, «Опция expires не должна быть задайте напрямую, вместо этого используйте только опцию maxAge «.

Если вы удалите объект expires, он должен работать.

+0

Это работает! Спасибо. Я совершил ту же ошибку. Я всегда читаю документы примерно :( –

Смежные вопросы