Node.js 在Heroku(RedisToGo插件)上运行时,req.session未定义,但在本地使用RedisToGo url时可用
我已经将前端(使用Typescript进行响应)和后端(使用Typescript进行Nodejs)分别部署到Heroku。我正在使用Node.js 在Heroku(RedisToGo插件)上运行时,req.session未定义,但在本地使用RedisToGo url时可用,node.js,express,heroku,redis,redistogo,Node.js,Express,Heroku,Redis,Redistogo,我已经将前端(使用Typescript进行响应)和后端(使用Typescript进行Nodejs)分别部署到Heroku。我正在使用express session和connectredis来维护用户会话,为此我使用了一个名为Redistogo的外部redis服务 当我在本地运行应用程序时,req.session存在,并且在登录期间对用户进行身份验证后,我能够在req.session.user中设置用户的会话。但是,当以完全相同的方式在Heroku上运行后端时,req.session保持未定义 i
express session
和connectredis
来维护用户会话,为此我使用了一个名为Redistogo的外部redis服务
当我在本地运行应用程序时,req.session
存在,并且在登录期间对用户进行身份验证后,我能够在req.session.user
中设置用户的会话。但是,当以完全相同的方式在Heroku上运行后端时,req.session
保持未定义
if(process.env.NODE_ENV === 'production') {
this.app.set('trust proxy', 1)
const rtg = url.parse(process.env.REDISTOGO_URL);
const redisClient = redis.createClient(rtg.port, rtg.hostname);
redisClient.auth(rtg.auth.split(":")[1]);
this.app.use(session({
name: 'random_pur',
store: new RedisStore({
redisClient
}),
secret: 'meow',
resave: true,
saveUninitialized: false,
cookie: {
secure: false,
sameSite: false,
maxAge: 36000000,
httpOnly: false,
}
}));
}
所以我不确定我在这里遗漏了什么-它不会给本地主机带来任何问题。任何帮助都将不胜感激。谢谢