在Heroku上的节点和Redis应用程序错误

我是Heroku&Node的新手,请耐心等待。 我部署了我的工作聊天应用程序(在本地主机上)到Heroku,但无法打开Heroku应用程序。

任何人都可以帮助我如何解决这个问题?

我看了一些类似的问题在stackoverflow和做heroku config:add REDISCLOUD_URL='redis_cloud_url'heroku config:add NODE_ENV='production'但那些没有工作。


这是我的英雄日志。

 2015-04-11T19:42:35.568690+00:00 heroku[api]: Deploy 0244dd7 by MYMAIL@gmail.com 2015-04-11T19:42:38.004491+00:00 heroku[web.1]: Starting process with command `node app.js` 2015-04-11T19:42:39.182617+00:00 app[web.1]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY) 2015-04-11T19:42:39.182639+00:00 app[web.1]: Recommending WEB_CONCURRENCY=1 2015-04-11T19:42:39.793252+00:00 app[web.1]: events.js:85 2015-04-11T19:42:39.793258+00:00 app[web.1]: throw er; // Unhandled 'error' event 2015-04-11T19:42:39.793260+00:00 app[web.1]: ^ 2015-04-11T19:42:39.793262+00:00 app[web.1]: Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 2015-04-11T19:42:39.793264+00:00 app[web.1]: at RedisClient.on_error (/app/node_modules/redis/index.js:196:24) 2015-04-11T19:42:39.793266+00:00 app[web.1]: at Socket.<anonymous> (/app/node_modules/redis/index.js:106:14) 2015-04-11T19:42:39.793268+00:00 app[web.1]: at Socket.emit (events.js:107:17) 2015-04-11T19:42:39.793270+00:00 app[web.1]: at net.js:459:14 2015-04-11T19:42:39.793271+00:00 app[web.1]: at process._tickCallback (node.js:355:11) 2015-04-11T19:42:40.546881+00:00 heroku[web.1]: State changed from starting to crashed 

好吧,我知道这个问题,问题是你使用的是Redis云,所以Redis 没有127.0.0.1运行

看一下Heroku 的官方文档 。 您不能将REDISCLOUD_URL设置为redis_cloud_url ,您必须让Heroku将其设置为您的帐户的REDISCLOUD_URL,您可以通过在您的terminal中执行此操作

 heroku config:get REDISCLOUD_URL 

它应该返回这样的东西;

 http://rediscloud:password@hostname:port 

如果它返回没有这种格式的东西,那么插件没有正确configuration/激活您的应用程序。

而你连接到redis的代码应该是这样的:

 var redis = require('redis'); var url = require('url'); var redisURL = url.parse(process.env.REDISCLOUD_URL); var client = redis.createClient(redisURL.port, redisURL.hostname, {no_ready_check: true}); client.auth(redisURL.auth.split(":")[1]);