【问题标题】:error with express and connect-redis on store optionexpress 和 connect-redis on store 选项出错
【发布时间】:2015-05-03 10:46:07
【问题描述】:
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:无法读取未定义的属性“userSession”。

我确定此错误是由“RedisStore”对象引起的,但我不知道为什么,也不知道如何修复?

我有什么错误吗?

请帮帮我!!!

【问题讨论】:

    标签: node.js session express


    【解决方案1】:

    问题出在您的 RedisStore 配置中。端口设置应该是一个数字,像这样:

    app.use(session({
        store: new RedisStore({
            host: "localhost",
            port: 3636
        }),
        secret: 'keyboard cat',
        resave: false,
        saveUninitialized: true
    }));
    

    如果这不能解决问题,您还应该确保 3636 是正确的端口。 Redis 默认使用 6379。

    【讨论】:

    • 感谢您的回答,我更改了端口号,但它没有解决我的问题,我的控制台向我显示了同样的内容。 TypeError:无法读取未定义的属性“userSession”。
    猜你喜欢
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2020-10-03
    • 1970-01-01
    • 2022-12-14
    • 2019-06-24
    相关资源
    最近更新 更多