如何 debug nodeJS 代码? how to inspect NodeJS code?
Posted givingwu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何 debug nodeJS 代码? how to inspect NodeJS code?相关的知识,希望对你有一定的参考价值。
基本原理
- 启动 WebSocket 进行基于 inspect protocol 双工通信
- current_node_process <=> current_websocket <=> current_inspect_tool
- 启动 HTTP 服务,记录源(Meta)信息
- 每个程序会生成一个 UUID
IDE
VS Code
VS code 中打断点,然后进入 debugger 面板,点击开始。
Config launch.json
mkdir node-debug-demo
cd node-debug-demo
touch cmd.js
echo "console.log(process.argv.slice(2))" >> cmd.js
node cmd.js -t test -a abort
Will show folling results:
[ '-t',
'test',
'-a',
'abort' ]
But may they never been show for VS code debug mode, so we need canfig the .vscode/launch.json
:
Then we could see this:
We could write manaul or auto generate new:
Code:
{
"type": "node",
"request": "launch",
"name": "Test cmd.js",
"program": "${workspaceFolder}/cmd.js",
"args": [
"-t",
"test",
"-a",
"abort"
]
}
Use VS code debug panel to debug the cmd.js before this we must chekcout to it:
Chrome DEVTOOLS
chrome://inspect
1st: Run CMD in terminal and the CLI options are right here:
node debug -help # it is very useful as well
# or
node inspect dmeo.js
> help
2nd: Navigates to chrome://inspect page
inspect protocol
1st: Run CMD in terminal and the CLI options are right here:
复制 HOST + PORT 端口号进入浏览器:
HOST + PORT + "/json" 查看 HTTP
复制返回的 JSON 字符串中的 devtoolsFrontendUrl
字段,打上 breakpoint, 开始调试:
DEVTOOLS Node ICON
only works for OSX
and Linux
.
点击绿色的 nodeJS ICON.
性能调优
open DEVTOOLS - JSProfiler recording, then refresh current page to record how long used of each function execute.
END
Have fun with NodeJS.
以上是关于如何 debug nodeJS 代码? how to inspect NodeJS code?的主要内容,如果未能解决你的问题,请参考以下文章
How Do We Debug in Embedded System
How to DEBUG a trigger or procedure