整天我都有同样的错误。每次重新加载页面时,都会创建一个新会话。顺便说一句:我是NodeJS初学者,我的英语不是最好的。
var express = require('express');
var session = require('express-session');
var fileStore = require('session-file-store')(session);
var cookieParser = require('cookie-parser');
var app = express();
app.use(cookieParser('testing'));
app.use(session({
name: 'Session',
secret: 'testing',
saveUninitialized: false,
resave: true,
cookie: {
maxAge: 60000,
httpOnly: true,
secure: true
},
store: new fileStore({
path: './tmp/sessions/',
useAsync: true,
reapInterval: 5000,
maxAge: 10000
})
}));
app.get('/', function(req, res) {
if(res.session) {
req.session.t++;
console.log(req.session.t);
} else {
req.session.t = 1;
req.session.save();
console.log(req.session.t);
}
res.sendFile(__dirname + 'index.html');
});

最诚挚的问候,
海森堡
答案 0 :(得分:0)
您如何注意创建新会话?因为if(res.session)从未被执行过? 注意你正在检查res.session - 我想你的意思是req.session,这是一个区别。 res.session将始终未定义,这可能是您认为会话为空的原因。另外,请注意,在当前代码中,如果您尝试
,则会引发错误req.session.t = 1;
req.session.save();
因为您尝试访问未定义的对象req.session。