Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs/redis auth在本地工作(带工头),但不在Heroku上工作_Node.js_Heroku_Express_Redistogo - Fatal编程技术网

Node.js nodejs/redis auth在本地工作(带工头),但不在Heroku上工作

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

当我的节点应用程序在Heroku上时,我的req.session(.user)似乎不存在。事情在我的本地机器上运行,当我推到heroku时,我可以访问我的redis以用于其他用途,但当我登录并进入经过身份验证的页面时,我会在服务页面上看到“内部服务器错误”,并且在日志中看到“无法读取未定义的属性'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-我知道了。我需要做一些小的改变

谢谢,
John

尝试将第一行更改为:

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

如果这不起作用,请添加console.log语句,以查看If..else语句的哪一侧是您对Heroku的攻击。

您能用适合您的解决方案回答您自己的问题吗?