我怎么能debugging一个node.js应用程序部署在Heroku?

您好有一种方法来debugging部署在heroku服务器上的node.js应用程序。

我无法在本地进行debugging,因为该应用程序正在接收来自第三方的一些邮件请求,而且我没有公共IP。

谢谢。

快速和简单的只是login到Heroku,去你的应用程序,然后点击更多button。 在这里输入图像说明

或者在你的项目文件夹中键入heroku logs tail

我不知道Heroku为什么没有更好地突出显示,但是使用Heroku进行远程debugging所需的文档就在这个Heroku Exec(SSH隧道)页面上 。 目前它的node.js信息需要一些更新来支持较新的检查协议,但重要的细节都在那里。

首先,您需要编辑项目树根目录下的Procfile ,以告知Heroku启用了启用了debugging的Node:

 web: node --inspect ./server.js (or ./app.js or whatever your entry point is) 

然后,您需要使用Heroku CLI实用工具来连接计算机和Heroku应用程序之间的debugging端口。 如果您还没有安装,请阅读如何安装它的文档并将其logging到您的Heroku帐户中。

要启用连接,您需要运行一次:

 heroku ps:exec 

或者如果你运行多个Heroku应用程序:

 heroku ps:exec -a my-app-name 

一旦你得到一个$命令提示符,点击ctrl-C退出。

接下来,启动隧道:

 heroku ps:forward 9229 [-a my-app-name] 

现在,您的应用程序可以从支持Node.jsdebugging的任何IDE中使用。 对于Visual Studio Code ,您需要创build一个launch.jsonconfiguration条目:

 { "type": "node", "request": "attach", "name": "Heroku", "address": "localhost", "port": 9229, "protocol": "inspector", "localRoot": "${workspaceFolder}", "remoteRoot": "/app" }, 

您现在应该可以在编辑器中启动debugging会话,并在几秒钟之内将其连接到正在运行的应用程序。 所有正常的debuggingfunction,包括断点,调用栈,variables检查等都应该工作。