0
我的节点应用程序在本地端口8083上运行。当我推送到heroku时,如何配置服务在同一端口上运行?如何将节点应用程序设置为在heroku上的静态端口号上运行?
我的节点应用程序在本地端口8083上运行。当我推送到heroku时,如何配置服务在同一端口上运行?如何将节点应用程序设置为在heroku上的静态端口号上运行?
你不能这样做。你的代码应该监听你在通过Heroku服务器传递给你的PORT环境变量中的端口,你可以访问的端口号为process.env.PORT
,Heroku将在外部监听端口80上的HTTP和443监听HTTPS。
见文档:
特别是:
正确示例:
// Get the port:
const PORT = process.env.PORT || 3000;
// Listen on the port:
app.listen(PORT,() => console.log('Listening on', PORT));
默认值(3000在这个例子中)是情况下,当你的Heroku之外运行(如用于测试)。在Heroku上运行时,应该始终监听Heroku提供的端口。如果它在某个其他端口上侦听,那么Heroku将不会正确地将流量代理到您的应用。
我将如何在节点代码中指定.listen(8083) – techtransferportal
@techtransferportal您不会。您应该使用'.listen(process.env.PORT || SOME_DEFAULT_PORT)',因为Heroku将始终为您设置PORT,如果您在不同于Heroku提供的端口上侦听端口,它将不会将流量代理到您的应用。 – rsp
rsp,非常感谢您的帮助 – techtransferportal