Node.js 提供了一个内置的调试器 inspect,用于调试应用程序。下面介绍两种常用的调试方式。
1. 使用 --inspect 命令行参数
使用 --inspect 命令行参数可以开启 Node.js 的调试模式。例如,我们可以在命令行中输入以下命令来启动带有调试模式的 Node.js 应用程序:
node --inspect app.js
执行上述命令后,Node.js 将会启动一个调试服务器,并输出一个类似于以下的信息:
Debugger listening on ws://127.0.0.1:9229/8a2a6f1d-9b9e-4c6f-8c0f-fd4cd1e4d4be
For help, see: https://nodejs.org/en/docs/inspector
此时,我们可以在 Chrome 浏览器中输入 chrome://inspect,然后点击 Open dedicated DevTools for Node,即可进入 Chrome DevTools 的调试界面。在这里,我们可以像调试前端代码一样调试 Node.js 应用程序。
2. 使用 --inspect-brk 命令行参数
使用 --inspect-brk 命令行参数可以在第一行代码执行前停止执行,等待调试器连接。例如,我们可以在命令行中输入以下命令来启动带有调试模式的 Node.js 应用程序:
node --inspect-brk app.js
执行上述命令后,Node.js 将会启动一个调试服务器,并输出一个类似于以下的信息:
Debugger listening on ws://127.0.0.1:9229/8a2a6f1d-9b9e-4c6f-8c0f-fd4cd1e4d4be
For help, see: https://nodejs.org/en/docs/inspector
此时,Node.js 将会在第一行代码执行前停止执行,等待调试器连接。我们可以在 Chrome 浏览器中输入 chrome://inspect,然后点击 Open dedicated DevTools for Node,即可进入 Chrome DevTools 的调试界面。在这里,我们可以像调试前端代码一样调试 Node.js 应用程序,并在代码执行前设置断点。
--inspect-brk 和 --inspect 的区别在于调试会话的开始时间。 使用 --inspect-brk 命令行参数启动 Node.js 应用程序时,Node.js 会在应用程序的第一行代码处停止执行,等待调试器连接。这意味着我们可以在代码执行前设置断点,并在调试器连接后逐行执行代码。这对于调试初始化代码或者在代码执行前进行调试十分有用。 使用 --inspect 命令行参数启动 Node.js 应用程序时,Node.js 不会在应用程序的第一行代码处停止执行,而是直接执行应用程序。这意味着我们需要在调试器连接后手动设置断点,并在断点处进行调试。这对于调试已经运行的代码或者在代码执行后进行调试十分有用。 因此,我们可以根据具体的调试需求来选择使用 --inspect-brk 还是 --inspect 命令行参数。
-
远程调试
-
打开
Chrome浏览器,输入chrome://inspect并打开 -
点击
Configure...按钮 -
配置远程ip
也可以在VScode的launch中进行配置。