req.session undefined with Redis/Express



我从内存存储切换到使用Redis,并且我还在本地使用MongoDB。

我读过的类似帖子并不相关,也没有帮助。基本上,如果路由器函数试图将值设置为req.session,则节点应用程序将关闭。

我是Redis的新手,所以也许这是我没有看到的显而易见的东西?

// in app
var app = express();
var cookieParser = express.cookieParser('secret');
app.configure(function () {
  app.use(express.bodyParser());
  app.use(cookieParser);
  app.use(express.session({secret: 'secret', store: othermodule.getSessionStore()})); 
// othermodule
var RedisStore = require('connect-redis')(express);  
var sessionStore = new RedisStore({
    host: 'localhost',
    port: 6379,
    db: 2,
    pass: 'RedisPASS'});

感谢

尝试删除您传递给RedisStore的选项中的密码。

如果您愿意,您可以要求客户端在连接时提供密码。但默认情况下,客户端连接不需要密码。如果不需要密码,而您提供了密码,则客户端将尝试使用给定的密码进行身份验证,这将导致连接失败。客户端不允许回退到不使用密码。因此,您得到的会话未定义。

请参阅此处和此处以配置密码。

最新更新