簡體   English   中英

Heroku process.env.port 未定義

[英]Heroku process.env.port is undefined

我正在嘗試在 heroku 上運行一個 node.js 應用程序。 我讓它在本地工作,但是當我在 heroku 上部署它時,我收到以下錯誤:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

這是我嘗試偵聽的端口:

const PORT = process.env.port || 3000;

當我記錄 process.env.port 是什么時,它說 process.env.port 未定義。

我需要做什么來自動設置端口?

編輯(修復):所以我發現了問題所在。 javascript 正在被縮小,但 process.env.port 被縮小到不起作用的東西。 感謝您的幫助。

任何人都可以訪問該職位。 首先檢查您是否正確編寫了process.env.PORT 我正在編寫.Port ,我花了 4 個小時才找出錯誤

您應該在 heroku 上運行服務器之前傳遞配置參數。 在終端類型

$ heroku config:set PORT=3333

然后你就可以得到這樣的端口號

const PORT = process.env.PORT || 3000;

如果您從終端分配

 console.log(PORT) => 3333

否則

console.log(PORT) => 3000

我遇到了同樣的問題,並找到了將 heroku dyno 端口變量傳遞給節點啟動腳本的解決方案。

如果您在項目的根目錄中創建了 Procfile,只需打開它。

如果您還沒有創建 Procfile,只需轉到項目的根目錄並創建一個名為“Procfile”的文件。 該文件沒有擴展名,它有助於 heroku 獲得應用程序的起點。 有關它的更多詳細信息: Procfile

Node.JS Heroku 文檔中,沒有提供任何示例應該如何看起來像 Procfile。

就我而言,我使用的是 Typescript,我的 .js 文件輸出目錄位於項目文件夾的 /build 目錄中。 我假設你有同樣的情況。 如果沒有,只需放置啟動文件的目錄。

簡介:

web: PORT=$PORT node ./build/index.js

如果您使用 babel,請不要在 Heroku 中使用 babel 插件babel-plugin-transform-inline-environment-variables 我認為 Heroku 在進行部署時沒有設置 PORT 變量,所以這就是為什么你會得到 undefined 的原因。

只是想把這個留給像我這樣困惑的人,你必須使用

process.env.PORT

不是

process.env.$PORT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM