码迷,mamicode.com
首页 > Web开发 > 详细

如何 debug nodeJS 代码? how to inspect NodeJS code?

时间:2019-03-21 01:00:18      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:note   workspace   alt   poi   ram   can   性能调优   org   nodejs   

基本原理

  1. 启动 WebSocket 进行基于 inspect protocol 双工通信
    1. current_node_process <=> current_websocket <=> current_inspect_tool
  2. 启动 HTTP 服务,记录源(Meta)信息
  3. 每个程序会生成一个 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?

标签:note   workspace   alt   poi   ram   can   性能调优   org   nodejs   

原文地址:https://www.cnblogs.com/givingwu/p/10569056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!