0

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

谢谢

4

1 回答 1

2

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

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

有关配置密码的信息,请参见此处此处

于 2013-06-30T11:50:10.140 回答