Node.js nodejs/redis auth在本地工作(带工头),但不在Heroku上工作
当我的节点应用程序在Heroku上时,我的req.session(.user)似乎不存在。事情在我的本地机器上运行,当我推到heroku时,我可以访问我的redis以用于其他用途,但当我登录并进入经过身份验证的页面时,我会在服务页面上看到“内部服务器错误”,并且在日志中看到“无法读取未定义的属性'currentUser',w/undefined=req.session”,我相信 此外,我在两个文件的开头都有相同的redistogo代码:Node.js nodejs/redis auth在本地工作(带工头),但不在Heroku上工作,node.js,heroku,express,redistogo,Node.js,Heroku,Express,Redistogo,当我的节点应用程序在Heroku上时,我的req.session(.user)似乎不存在。事情在我的本地机器上运行,当我推到heroku时,我可以访问我的redis以用于其他用途,但当我登录并进入经过身份验证的页面时,我会在服务页面上看到“内部服务器错误”,并且在日志中看到“无法读取未定义的属性'currentUser',w/undefined=req.session”,我相信 此外,我在两个文件的开头都有相同的redistogo代码: if process.env.REDISTOGO_URL
if process.env.REDISTOGO_URL
rtg = require("url").parse(process.env.REDISTOGO_URL)
redis = require("redis").createClient(rtg.port, rtg.hostname)
redis.auth(rtg.auth.split(":")[1])
else
redis = require("redis").createClient()
编辑:
我对Heroku/express/redis还是相当陌生的,我意识到问题可能是上面的代码不在正在导出和调用的函数中,所以我将其移入,但我无法将其部署。之后
git add .
git push heroku master
heroku releases
我得到了与以前相同的部署和回滚列表
所以,1)我的问题是我的代码在导出的fn之外
2) 如何推动我的更改?我有没有可能把Heroku的记忆用完了?我的程序不是很大
Edit2-我知道了。我需要做一些小的改变
谢谢,
John尝试将第一行更改为:
if (typeof(process.env.REDISTOGO_URL) !== 'undefined')
如果这不起作用,请添加console.log语句,以查看If..else语句的哪一侧是您对Heroku的攻击。您能用适合您的解决方案回答您自己的问题吗?