app.engine('html', ejs.renderFile)
.set("views", __dirname + '/views')
.use("/public", express.static(__dirname + '/public'));
/*********************************************************************/
app.use(cookieParser());
app.use(session({
store: new RedisStore({
host: "127.0.0.1",
port: "3636"
}),
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}));
app.use(function(req, res, next) {
var userSession = req.session.userSession;
if (!userSession) {
userSession = req.session.userSession = '';
}
next();
});
/************************************************************************/
server.listen(8080);
app.get('/', function(req, res) {
res.render('index2.html', {
infoUser: req.session.userSession
});
})
.use(function(req, res, next) {
res.redirect('/');
});
控制台显示:
TypeError: Cannot read property 'userSession' of undefined.
我确信这个错误是由“RedisStore”对象引起的,但我不知道为什么,也不知道如何修复?
我有什么错误吗?
请帮帮我!!!
请您参考如下方法:
问题出在您的 RedisStore
配置中。端口设置应该是一个数字,如下所示:
app.use(session({
store: new RedisStore({
host: "localhost",
port: 3636
}),
secret: 'keyboard cat',
resave: false,
saveUninitialized: true
}));
如果这不能解决问题,您还应该确保 3636 是正确的端口。 Redis 默认使用 6379。