nodejs / redis auth在本地工作(带有Foreman),但不能在Heroku上工作

时间:2013-09-24 06:22:57

标签: node.js heroku express redistogo

当我的节点应用程序在Heroku上时,看起来我的req.session(.user)不存在。事情在我的本地机器上运行,当我推送到heroku时,我可以访问我的redis-to-go商店用于其他用途,但是当我登录并继续进行经过身份验证的页面时,我在服务器上收到“内部服务器错误”页面,并且“无法在日志中读取未定义的属性'currentUser',w / undefined = req.session,我相信。

另外,我在两个文件的开头都有相同的redistogo代码:

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 - 我弄清楚了。我需要进行一些小改动。

谢谢, 约翰

1 个答案:

答案 0 :(得分:0)

尝试将第一行更改为:

if (typeof(process.env.REDISTOGO_URL) !== 'undefined')

如果这不起作用,请添加console.log语句,以查看您在Heroku上的if..else语句的哪一侧。