我有一个使用 redis 云在 Heroku 中存储 session 的 express 应用程序。几个月前它工作正常,但我刚刚重新访问它并且它不再工作了。似乎没有 session ,并抛出错误 TypeError: Cannot read property 'user' of undefined
,有问题的代码行是
if (!req.session.user) {
...
...
}
也许我配置不正确
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var redis = require('redis-url').connect(config.redis_url);
var sessionMiddleware = session({
store: new RedisStore({
host: config.redis_host,
port: config.redis_port
}),
secret: 'Its a secret.',
cookie: { secure: true },
saveUninitialized: true,
resave: true
});
对应的配置文件是
module.exports = {
mongo_url: process.env.MONGOLAB_URI || 'mongodb://127.0.0.1:27017/psa',
redis_url: process.env.REDISCLOUD_URL || 'redis://localhost:6379',
redis_host: taken from process.env.REDISCLOUD_URL,
redis_port: taken from process.env.REDISCLOUD_URL,
port: process.env.PORT || 5000
};
当我如下定义 session 中间件时,这在本地工作 forman start web
var sessionMiddleware = session({
secret: 'VkWdLXauq6ya',
saveUninitialized: true,
resave: true,
store: new RedisStore({
client: redis
}),
cookie: {
path: '/',
maxAge: 3600000
},
name: 'sessionCookie'
});
最佳答案
关于node.js - Redis Cloud 用于 Node heroku 应用程序中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31249934/