Node.js:如何附加到正在运行的进程并使用控制台调试服务器?

我用'永远'来运行我的应用程序。 我想附加到运行环境来检查我的应用程序。 那么我能做什么?


从http://nodejs.org/api/debugger.html:

高级用法

V8调试器可以通过使用--debug命令行标志启动Node或通过用SIGUSR1发信号通知现有的Node进程来启用和访问。

找到你的node进程的PID,然后发送SIGUSR1应该做的诀窍:

kill -s SIGUSR1 nodejs-pid

然后运行node-inspector并浏览到它指示的URL。 更多内容在本教程中。


您可以将REPL添加到您的应用。 例如,如果添加REPL以在本地主机端口5001上侦听,则可以照常启动应用程序并使用telnet登录: telnet localhost 5001 。 这将带你到一个提示你可以直接与你的应用程序进行交互的地方。

或者,如果您需要让应用在达到特定状态时“暂停”,则需要添加“调试器”; 行到你想要那些断点的代码区域,然后以调试模式启动应用程序。

希望有所帮助。


节点6.3开始,节点有一个内置的调试器,可以通过执行来触发(即使在生产应用程序中):

kill -USR1 <node-pid>

节点进程会吐出如下所示的内容:

Debugger listening on ws://127.0.0.1:9229/f3f6f226-7dbc-4009-95fa-d516ba132fbd
For help see https://nodejs.org/en/docs/inspector
  • 如果您可以从浏览器访问服务器,则可以在http://host.domain:9229上使用chrome://inspect
  • 如果无法通过浏览器进行连接(即服务器位于防火墙生产群集中),则可以激活REPL以检查命令行:

    node inspect -p <node-pid>
    
  • 在此版本之前, node-inspector是用于调试节点进程的独立工具。 然而,正如其自己的页面所记录的那样,由于现在捆绑的调试器被主动维护并提供更多高级功能,因此它大多被弃用。 有关此更改的更多信息,请参阅此主题。

    链接地址: http://www.djcxy.com/p/52687.html

    上一篇: Node.js: How to attach to a running process and to debug the server with a console?

    下一篇: date tutorials of Express 4.0 with Node.js?