当前位置 : 主页 > 网页制作 > Nodejs >

node.js – heroku路由如何请求正确的端口?

来源:互联网 收集:自由互联 发布时间:2021-06-16
在阅读了几个Heroku NodeJS教程之后,我了解到Heroku通过“process.env.PORT”环境变量为您的应用程序分配了一个随机端口,并且让您的应用程序在本地和heroku上工作的正确方法是将端口设置为等
在阅读了几个Heroku NodeJS教程之后,我了解到Heroku通过“process.env.PORT”环境变量为您的应用程序分配了一个随机端口,并且让您的应用程序在本地和heroku上工作的正确方法是将端口设置为等于

process.env.PORT || 8000

,当您在localhost上运行时,可以使用您希望应用程序运行的任何端口替换8000.

以下是它在我的应用程序中的外观(“服务器”是http服务器,当前正在提供静态HTML文件):

server.listen(process.env.PORT || 8000)

当我在heroku上运行应用程序并检查日志时,我会看到process.env.PORT被分配了一个端口号…这个以前的部署,它是29074.

当我在本地运行应用程序时,我通过URL http://localhost:8000连接.如果我不包含端口号,则页面无法加载(无法找到页面).

那么,当我连接到heroku上的页面时,为什么我不必在URL中指定端口29074?我可以访问网址https://limitless-brook-9339.herokuapp.com/而不指定端口号,它加载正常.实际上,如果我尝试将URL中的端口显式设置为:29074,则会显示“此网页不可用”.

请记住,Heroku可能正在幕后做一些路由.如果有请求,则不一定会命中您的应用程序(例如,运行Express).它最有可能像nginx这样,它可以根据主机名做自己的内部路由.

语句server.listen(process.env.PORT || 8000)指定端口 – 它是process.env.PORT的值(通过在命令行上设置PORT = 80(或PORT = 443)指定)或使用端口8000作为默认值.

网友评论