如何在 heroku 上远程调试 node.js 应用程序?

How to remote debug a node.js app on heroku?

我目前正在构建一个 node.js 聊天机器人,然后将其部署到 heroku 上。 该应用程序使用 webhooks,它必须位于服务器可以访问的 public URL 处。因此,运行 我机器上的本地服务器将无法工作。有什么方法可以远程调试我的应用程序吗?有什么建议吗?

您确实可以使用 ngrok 等免费代理服务在本地计算机上调试 webhooks。

如果你想在 Heroku 上调试它,你可以使用 heroku logs --tail 查看你的实时日志或使用存储日志的插件服务。

我会考虑使用工具将 public URL 连接到您的本地应用 运行 实例。

选项 1:ngrok

一个简单的 ngrok

选项 2:ssh 反向隧道

如果您有权访问任何具有 ssh 和管理员权限的面向 Internet 的服务器以启用 GatewayPorts yes sshd 配置,则可以使用 ssh 远程隧道来实现。例如:

ssh -n -R 8080:localhost:3000 myserver.example.com

将允许发送到 http://myserver.example.com:8080 的 webhooks 隧道连接到侦听端口 3000 的本地应用程序。

More details on ssh tunneling can be found here

找到更简单的解决方案。

安装 LogDNA 插件,然后 运行 应用程序并查看错误堆栈跟踪。

那么当你看到错误以及发生在哪一行时,就很容易找到问题了。

使用 Papertrail 插件或者也可以使用此处提到的日志记录选项 https://devcenter.heroku.com/articles/logging