将 Redis 用于会话存储似乎不起作用



调整现有应用程序到Express 4.4.x

尝试使用以下代码实现redis会话存储:

var express = require('express');
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var redis = require('redis').createClient();
app.use(session({
    store: new RedisStore({
        host: '1.1.1.1',
        port: 1234,
        prefix: 'yourprefix:',
        client: redis
    }),
    secret: '.......',
    resave: true,
    saveUninitialized: true
}));

然而,当我运行这个没有键存储在redis,我不能调用req.session。我确信这是一些非常简单的东西,我错过了或者包含了一些限制它的代码。也可能是redis设置?

谢谢

好吧,我只是在文档中迷失了。很难跟踪express-session, redis, connect-redis,并完全记住它们之间的区别。

简单的解决方案是:

var redis = require('redis')。create (port, host, auth);

现在它工作了。我相信我能够使用。createclient ();当redis服务器是本地托管时,但是现在我们已经转移到一个专用的redis服务器-这些属性是必需的。

谢谢,希望这能帮助到其他人!

相关内容

最新更新