node.js错误仅在localhost网址上出现ECONNREFUSED

时间:2015-02-03 01:03:00

标签: node.js heroku

我有一个节点应用程序,托管在heroku上,我试图点击返回一些JSON的API。我调用的API与我调用它的应用程序相同(例如,节点应用程序托管我的网络应用程序,并且有一个从我的数据库生成JSON的API)。

我使用请求npm模块进行API调用。当部署到heroku时,当我使用localhost:8080作为函数中的url时,我得到下面的错误,但是当我使用我的app在heroku上托管的实际url时,它工作正常。我有dev / staging / prod环境,所以我不想对网址进行硬编码。

事情是,它在我的机器上本地工作正常,所以我不确定问题是什么 - 我假设它与heroku有关,因为这是唯一的区别,但我对这种错误并不十分熟悉。

另外 - 如果有帮助,我可以在浏览器中点击两个网址,本地和heroku应用程序。

request('http://localhost:8080/api/pictures', function (error, response, body) {
  // this throws error: "connect ECONNREFUSED"
});

request('http://myapp.herokuapp.com/api/pictures', function (error, response, body) {
   // this works
});

1 个答案:

答案 0 :(得分:2)

connect ECONNREFUSED:您首先想要了解的两件事:

  • 您尝试连接的服务是否已启用并已启动?

  • 客户端与服务主机/服务端口之间是否有防火墙?

在你的情况下:

1)我假设您已经在本地启动了Heroku(在Windows PC上?)

2)我还假设它在端口8080(根据你的笔记)上运行

3)请检查您的本地防火墙软件,以确保启用Heroku和/或端口8080。您是否有任何防病毒程序(可能会引入自己的防火墙)?

4)另外,请看这些链接: