heroku从前端应用程序向后端应用程序发送请求

时间:2020-07-05 11:41:14

标签: node.js reactjs heroku client-server hapi

我在heroku上创建了一个hapi.js后端应用程序。经过一堆问题,一切都很好。现在,我想用react.js创建一个前端应用程序,但是我有一个问题:

const server = Hapi.server({
        port: process.env.PORT,
        host: '0.0.0.0'
    });

要定义后端的端口,我有enviroment变量,所以我真的不知道它的值。那么React应用程序如何知道连接服务器的正确端口?

2 个答案:

答案 0 :(得分:0)

您实际上不需要知道端口号。您可以使用默认端口:HTTP的默认端口为80,HTTPS的默认端口为443。

根据heroku文档:

与Heroku签订的合同是将进程绑定到端口以处理请求。然后,Heroku的路由器负责将HTTP请求定向到正确端口上的进程。

这意味着heroku自己侦听HTTP的端口80和HTTPS的端口443。

参考:

  1. https://devcenter.heroku.com/articles/runtime-principles#web-servers
  2. https://stackoverflow.com/a/51572239/5045878
  3. https://stackoverflow.com/a/54200996/5045878

答案 1 :(得分:0)

我想说您不需要知道端口,因为所有请求都将发送到https://hapi.yourdomain.com,并且您的前台将被发送到https://yourdomain.com

编辑:

在heroku中,这是您定义端口的方式:

const port = process.env.PORT || 8000

Heroku将提供您所需的环境变量(每次部署应用程序时都会更改)

然后您的react应用程序无需连接到特定端口,只需访问您的端点即可:

https://back.domain.com/your/endpoint