嗨有沒有辦法調試部署在heroku服務器上的node.js應用程序。我怎樣才能調試一個node.js應用程序部署在Heroku上?
我無法在本地進行調試,因爲該應用程序正在接收來自第三方的某些發佈請求,而且我沒有公共IP。
謝謝。
嗨有沒有辦法調試部署在heroku服務器上的node.js應用程序。我怎樣才能調試一個node.js應用程序部署在Heroku上?
我無法在本地進行調試,因爲該應用程序正在接收來自第三方的某些發佈請求,而且我沒有公共IP。
謝謝。
我不知道爲什麼Heroku上並不突出這更好的控制檯,但你需要的Heroku與遠程調試的文件是在這個Heroku Exec (SSH tunneling) page。目前它的node.js信息需要一些更新來支持較新的檢查器協議,但重要細節都在那裏。
首先,你需要在你的項目樹的根編輯Procfile
告訴Heroku的與啓用調試啓動節點:
web: node --inspect ./server.js (or ./app.js or whatever your entry point is)
然後,你需要使用Heroku CLI實用隧道之間的調試端口的電腦和你的Heroku應用程序。如果您還沒有安裝它,請閱讀有關如何安裝它並將其記錄到您的Heroku帳戶的文檔。
要啓用連接,你需要運行一次這樣的:
heroku ps:exec
,或者如果你運行多個應用程序的Heroku:
heroku ps:exec -a my-app-name
一旦你得到一個$
命令提示符下敲入CTRL- C退出。
接下來,啓動隧道:
heroku ps:forward 9229 [-a my-app-name]
現在您的應用程序可從支持Node.js的調試任何IDE。對於Visual Studio Code,你要創建一個類似如下的launch.json
配置條目:
{
"type": "node",
"request": "attach",
"name": "Heroku",
"address": "localhost",
"port": 9229,
"protocol": "inspector",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/app"
},
您現在應該能夠在編輯器中啓動調試會話,並將它在幾秒鐘內連接到正在運行的應用程序。所有正常的調試功能,包括斷點,調用棧,變量檢測等都應該可以工作。
我很好奇爲什麼有人會投下這個答案,如果有什麼我可以改進的,請告訴我。 – Bruce
你是對的!這是一個好的開始,但我需要一個調試器。我必須檢查我收到的Json請求。理論上它的內容可以使用req.body來訪問,但req.body會爲body屬性拋出一個未定義的錯誤。如果我登錄請求,我得到[對象]如果我登錄Json.stringify(req)我收到一些循環錯誤。我別無選擇,只能檢查req對象:( – RaresI