如何在Heroku上调试node.js应用程序部署?
嗨,有没有办法调试部署在heroku服务器上的node.js应用程序 我无法在本地调试它,因为该应用程序正在接收来自第三方的post请求,并且我没有公共IP如何在Heroku上调试node.js应用程序部署?,node.js,heroku,Node.js,Heroku,嗨,有没有办法调试部署在heroku服务器上的node.js应用程序 我无法在本地调试它,因为该应用程序正在接收来自第三方的post请求,并且我没有公共IP 谢谢 只需登录heroku,转到应用程序并单击“更多”按钮,即可轻松快捷 或者在项目文件夹中的控制台中键入heroku logs tail,我不知道为什么heroku没有更好地突出显示这一点,但是heroku远程调试所需的文档就在这里。目前,它的node.js信息需要一些更新以支持更新的inspector协议,但重要的细节都在那里 首先,您
谢谢 只需登录heroku,转到应用程序并单击“更多”按钮,即可轻松快捷
或者在项目文件夹中的控制台中键入heroku logs tail,我不知道为什么heroku没有更好地突出显示这一点,但是heroku远程调试所需的文档就在这里。目前,它的node.js信息需要一些更新以支持更新的inspector协议,但重要的细节都在那里 首先,您需要编辑项目树根目录下的
Procfile
,告诉Heroku在启用调试的情况下启动节点:
web: node --inspect ./server.js (or ./app.js or whatever your entry point is)
然后,您需要使用该实用程序在计算机和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获得。对于,您需要创建一个如下所示的launch.json
配置条目:
{
"type": "node",
"request": "attach",
"name": "Heroku",
"address": "localhost",
"port": 9229,
"protocol": "inspector",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/app"
},
现在您应该能够在编辑器中启动调试会话,并在几秒钟内将其连接到正在运行的应用程序。所有正常的调试功能,包括断点、调用堆栈、变量检查等都应该可以工作。2019回答Webstorm 2019.2
变化不大,但仍然:
Procfile
(无扩展名)-->编辑它:
web: node --inspect ./server.js (or ./app.js or whatever your entry point is)
使用新文件部署代码强>
heroku ps:exec -a [YOUR_APP_NAME]
exit
在终端:
heroku ps:forward 9229 -a [YOUR_APP_NAME]
- “编辑配置”-->单击+-->“附加到节点/Chrome”-->默认设置很好,只需命名即可。
- 选择“Chrome或Node>6.3以--inspect开头”
- 嗯
- 单击调试按钮
最后:删除Procfile并在没有它的情况下重新部署。你说得对!这是一个好的开始,但我需要一个调试器。我必须检查我收到的Json请求。理论上,可以使用req.body访问它的内容,但是req.body会为body属性抛出一个未定义的错误。如果我记录req,我会得到[object],如果我记录Json.stringify(req),我会收到一些循环错误。我别无选择,只能检查req对象:(@RaresI你成功克服了吗?也无法记录请求-同样的问题。如果有任何问题,我将不胜感激help@chenop对不起,伙计,我不记得我做了什么。这是很久以前的事了。这太完美了!虽然有一件事我不明白,为什么我必须并排运行
ps:exec
和ps:forward
,并指定在我的launch.json
中的协议。我使用ssh隧道连接到aws上的服务器,我可以通过ssh轻松连接,但它不适用于heroku,如果我只运行ps:forward
命令,则不允许我连接。无论如何,这对我有效:Dcan你可以制作itI的视频吗?我只是这样做了,没有工作,我还有吗还有什么需要配置的吗?它会提示一条消息,上面写着“无法连接到目标:套接字挂起”官方文档:就在money上。Lifesaver。感谢您为Webstorm添加特定步骤!