嗨有没有办法调试部署在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