我启动了一个带有以下行的node.js服务器来设置端口:
app.set('port', process.env.PORT || 8080);这意味着,它要么读取PORT变量,要么默认为8080,就像在本地运行时那样。它们都不会发生在Heroku上,而且服务器总是使用默认端口80。知道怎么改吗?
heroku config
PORT: 8080发布于 2015-02-24 21:57:00
Heroku设置要绑定的PORT变量,并侦听tcp/80。
发布于 2018-10-14 19:21:14
您应该使用heroku打开的端口,如下所示:
port = process.env.PORT || 80如果端口还没有被设置,它就会将端口设置为80。
发布于 2020-08-20 12:48:25
所有的答案都很棒!想要稍微谈谈这个理论,以便人们能够理解Heroku为什么将其端口设置为80或443。。
计算机必须创建一个约定,以便使用不同的协议相互通信。例如HTTP、HTTPS、SSH、FTP等。
因此,达成了协议,即计算机将与端口80通信HTTP,https将在端口443上通信,等等。下面的表格显示了所有协议的常规保留端口号。

现在,你们中的一些人可能会想,如果这些是预留端口号,为什么我的计算机允许我使用端口号80和443 (例如本地主机:80)。您可以使用任何端口号(实际上,您可以选择多达65,535个端口号),但是一旦您想要部署到生活中并希望其他人使用您的应用程序,那么您必须开始使用端口80 (HTTP)或端口443 (https)的约定。
Heroku通过提供一个环境变量process.env.PORT来申请正确的常规端口号,这样其他人就可以访问您的应用程序了。
https://stackoverflow.com/questions/28706180
复制相似问题