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。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!