Node.js 是否可以调试当前正在运行的生产节点应用程序?

Node.js 是否可以调试当前正在运行的生产节点应用程序?,node.js,debugging,production-environment,Node.js,Debugging,Production Environment,我通过运行node--debug并使用node-inspector工具在本地进行调试。节点检查器必须在后台运行,然后我将我的浏览器(并非所有浏览器都可以工作;Chrome可以)指向http://127.0.0.1:8080/debug?port=5858进行调试 问题是我不能在本地运行生产服务器(缺少不属于开发人员机器的私钥文件),这使得调试某些生产问题非常困难,即使我愿意在生产机器上进行黑客攻击。使用Node inspector仍然可以做到这一点吗?是的,您只需要执行以下几个步骤: 节点检查器

我通过运行
node--debug
并使用
node-inspector
工具在本地进行调试。节点检查器必须在后台运行,然后我将我的浏览器(并非所有浏览器都可以工作;Chrome可以)指向
http://127.0.0.1:8080/debug?port=5858
进行调试


问题是我不能在本地运行生产服务器(缺少不属于开发人员机器的私钥文件),这使得调试某些生产问题非常困难,即使我愿意在生产机器上进行黑客攻击。使用Node inspector仍然可以做到这一点吗?

是的,您只需要执行以下几个步骤:

  • 节点检查器必须与您尝试调试的节点进程一起在计算机上运行。所以,你必须能够在那里安装这个
  • 您的生产过程可能不是以
    --debug
    标志开始的。您可以发送一个信号来实现这一点:
    kill-s USR1
    。(可以使用类似于
    ps aux | grep node
    的方法获得pid)
  • 确保端口8080从生产机器暴露到本地机器
  • 将浏览器指向正常位置;你们都准备好了

  • 我通常将NodeJs作为一个服务器服务启动,这样停止它并使用nodemon或标志进行调试就变得容易多了。
    --debug
    @FrancisRodrigues您可以将其作为一个答案发布(更详细)。感谢您与我们分享
    节点检查器