node.js项目在本地计算机上运行,​​在Heroku上部署时出现问题

时间:2017-11-13 04:38:01

标签: javascript node.js heroku web-deployment web-hosting

我有一个我正在处理的node.js + Express项目,当我在我的机器上运行它时,它已经工作了。我使用

为我的Express API设置了端口4200
var port = 4200;
app.js中的

我在React中使用axios访问API:

axios.get('https://localhost:4200/posts ... etc

当我在我的机器上运行它时,这一切都有效,但是当我使用Heroku部署它时,我收到此错误:

  

获取https://localhost:4200/posts net :: ERR_CONNECTION_REFUSED

     

错误:网络错误       at createError(createError.js:16)       在XMLHttpRequest.handleError(xhr.js:87)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我想强调两件事:

<强> 1) 引自https://devcenter.heroku.com/articles/deploying-nodejs#specifying-a-start-script

  

Web进程类型中的命令必须绑定到PORT环境变量中指定的端口号。如果没有,则dyno将无法启动。

所以你应该做的是

var port = process.env.PORT || 4200;

现在,当使用本地系统时,将使用端口4200,并且当部署在由环境变量分配的heroku端口时将使用。

<强> 2) 根据您的问题,您说您正在使用axios.get('https://localhost:4200/posts ... etc。如果部署了应用程序,它应该如何使用localhost

将localhost更改为在Heroku上创建应用程序时获得的域名。