我从 memorystore 切换到使用 Redis,我也在本地使用 MongoDB。
我读过的类似帖子不相关或没有帮助。 基本上,如果路由器函数尝试为 req.session 设置一个值, Node 应用程序将关闭。
我是 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 的选项中的密码。
如果需要,您可以要求客户端在连接时提供密码。但默认情况下,客户端连接不需要密码。如果不需要密码而您提供了密码,客户端将尝试使用给定的密码进行身份验证,这将导致连接失败。客户端不允许回退到不使用密码。因此,您获得的 session 未定义。
关于node.js - req.session undefined with Redis/Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17388668/