node.js - req.session undefined with Redis/Express

标签 node.js express redis

我从 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 未定义。

参见 herehere用于配置密码。

关于node.js - req.session undefined with Redis/Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17388668/

相关文章:

node.js - Node Express "favicon.ico"未找到错误

spring-boot - 为什么Spring-data-redis在缓存驱逐时使用keys命令

node.js - 如何在 Couchbase NodeJS SDK 3X 中设置 operationTimeout?

javascript - 使用 axios 获取本地 JSON 数据时遇到问题

node.js - 如何为 node.js HTTPS 服务器设置允许的协议(protocol)?

MongoDB Lookup 仅当没有数据时返回空数组

node.js - StrongLoop:隐藏方法 updateAttributes()

node.js - MongoDB 和 Node.js 中的动态查询

c# - 使用 StackExchange 库从 Windows 上的 C# 连接到 Redis 时出错

Redis "Client List"用途及说明