req.session未定义Redis / Express

时间:2013-06-30 08:43:23

标签: node.js express redis

我从内存库切换到使用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'});

感谢

1 个答案:

答案 0 :(得分:2)

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

如果您愿意,可以要求客户在连接时提供密码。但默认情况下,客户端无需密码即可连接。如果不需要密码并且您输入密码,客户端将尝试使用给定密码进行身份验证,这将导致连接失败。客户端不允许使用无密码的后备。因为你将会话定义为未定义。

有关配置密码的信息,请参阅herehere