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