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

Rar*_*esI 7 heroku node.js

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

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

谢谢.

Bru*_*uce 17

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

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

web: node --inspect ./server.js (or ./app.js or whatever your entry point is)
Run Code Online (Sandbox Code Playgroud)

然后,您需要使用Heroku CLI实用程序来隧道计算机和Heroku应用程序之间的调试端口.如果您尚未安装,请阅读有关如何安装它的文档并将其登录到您的Heroku帐户.

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

heroku ps:exec
Run Code Online (Sandbox Code Playgroud)

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

heroku ps:exec -a my-app-name
Run Code Online (Sandbox Code Playgroud)

收到$命令提示符后,按ctrl-C退出.

接下来,启动隧道:

heroku ps:forward 9229 [-a my-app-name]
Run Code Online (Sandbox Code Playgroud)

现在,您的应用程序可从任何支持Node.js调试的IDE中获得.对于Visual Studio Code,您需要创建如下所示的launch.json配置条目:

{
    "type": "node",
    "request": "attach",
    "name": "Heroku",
    "address": "localhost",
    "port": 9229,
    "protocol": "inspector",
    "localRoot": "${workspaceFolder}",
    "remoteRoot": "/app"
},
Run Code Online (Sandbox Code Playgroud)

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

  • 官方文档:https://devcenter.heroku.com/articles/exec (2认同)

Kri*_*son 6

快速简单就是登录heroku,转到您的应用程序并单击"更多"按钮. 在此输入图像描述

或者在项目文件夹类型的控制台中 heroku logs tail

  • 你是对的!这是一个好的开始,但是我需要一个调试器。我必须检查收到的Json请求。从理论上讲,可以使用req.body访问其内容,但是req.body会为body属性抛出未定义的错误。如果我记录了请求,如果我记录了Json.stringify(req),则会得到[object]我收到一些循环错误。我别无选择,只能检查req对象:( (2认同)

che*_*nop 6

Webstorm 2019.2 的 2019 年答案
没有太大变化,但仍然:

  1. 创建文件名Procfile(无扩展名)--> 编辑它:

     web: node --inspect=9090 ./server.js 
    
    Run Code Online (Sandbox Code Playgroud)

    (或 ./app.js 或任何您的入口点)

  2. 使用新的 Procfile 部署代码!

  3. 启用连接 - 打开终端并运行:

     heroku ps:exec -a [YOUR_APP_NAME]
    
    Run Code Online (Sandbox Code Playgroud)

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

    exit
Run Code Online (Sandbox Code Playgroud)

在终端中:

    heroku ps:forward 9090 -a [YOUR_APP_NAME]
Run Code Online (Sandbox Code Playgroud)
  1. 创建“运行配置”:
  • “编辑配置”--> 单击+-->“附加到节点/Chrome”--> 将端口更改为 9090 并为其命名。 在此输入图像描述
  • 选择“Chrome 或 Node > 6.3 以 --inspect 启动”
  • 好的
  • 点击调试

现在您应该连接到您的 heroku 服务器。

最后:删除 Procfile 并在没有它的情况下再次部署。