2016-07-10 13 views
1

Bevor ich neu laden oder auf eine andere Seite verschieben, console.log(req.session) Drucken Sie genau, was ich Werte gespeichert habe, aber es ist nicht mehr. Ich habe req.session.save(), req.session.regenerate ({..}) versucht oder gleichzeitig .save() und .reload() benutzt. Ich kann nicht verstehen, warum es passiert. Ich kämpfe mit diesen 6 Stunden.Express-Sitzung speichert keinen Wert

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: '~~~~~' 
})); 

Routen/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'); 
} 

Wenn ich auf 'localhost: 3000' die Konsole Druck wie diese

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

Aber wenn ich gehen zu 'localhost: 3000/reg', Es ist weg.

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

Paket ver.

  • "Express": "~ 4.13.1",
  • "Express-Sitzung": "^ 1.14.0"

Antwort

2

Per the documentation, „Die expires Option sollte nicht sein direkt setzen, verwenden Sie stattdessen nur die maxAge Option ".

Wenn Sie die expires Eigenschaft entfernen, sollte es funktionieren.

+0

Es funktioniert! Vielen Dank. Ich habe einen Fehler gemacht. Ich lese immer Dokumente ungefähr :( –