我如何在Heroku上调试node.js App部署?

时间:2016-07-25 13:20:44

标签: node.js heroku

您好有办法调试部署在heroku服务器上的node.js应用。

我无法在本地调试,因为该应用正在接收来自第三方的一些帖子请求,而且我没有公共IP。

感谢。

3 个答案:

答案 0 :(得分:13)

我不知道Heroku为什么不能更好地突出这一点,但是使用Heroku进行远程调试所需的文档就在Heroku Exec (SSH tunneling) page上。目前它的node.js信息需要一些更新才能支持更新的检查器协议,但重要的细节都在那里。

首先,您需要编辑项目树根目录下的Procfile,告诉Heroku在启用调试的情况下启动Node:

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"
},

您现在应该可以在编辑器中启动调试会话,并在几秒钟内将其连接到正在运行的应用程序。所有正常的调试功能,包括断点,调用堆栈,变量检查等都应该有效。

答案 1 :(得分:6)

快速简便只需登录heroku,转到您的应用并点击“更多”按钮即可。 enter image description here

或在项目文件夹中的控制台中输入heroku logs tail

答案 2 :(得分:0)

2019 Webstorm 2019.2的答案
变化不大,但仍然:

  1. 创建文件名Procfile(无扩展名)->对其进行编辑:

    web: node --inspect ./server.js (or ./app.js or whatever your entry point is)
    
  2. 启用连接-打开终端并运行:

    heroku ps:exec -a [YOUR_APP_NAME]
    

    一旦出现$命令提示符,请输入:

    exit
    

    在终端机中:

    heroku ps:forward 9229 -a [YOUR_APP_NAME]
    
  3. 创建“运行配置”:

    • “编辑配置”->单击+->“附加到节点/ Chrome”->可以使用默认名称。 enter image description here
    • 选择“ Chrome或Node> 6.3以--inspect开头”
    • 单击调试

现在假设您已连接到heroku服务器。