我有一个节点应用程序,托管在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
});
答案 0 :(得分:2)
connect ECONNREFUSED
:您首先想要了解的两件事:
您尝试连接的服务是否已启用并已启动?
客户端与服务主机/服务端口之间是否有防火墙?
在你的情况下:
1)我假设您已经在本地启动了Heroku(在Windows PC上?)
2)我还假设它在端口8080(根据你的笔记)上运行
3)请检查您的本地防火墙软件,以确保启用Heroku和/或端口8080。您是否有任何防病毒程序(可能会引入自己的防火墙)?
4)另外,请看这些链接: