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

基本原理

  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.

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

时间: 2024-11-08 22:11:13

如何 debug nodeJS 代码? how to inspect NodeJS code?的相关文章

3分钟干货学会使用node-inspector调试NodeJS代码

使用node-inspector调试NodeJS代码 任何一门完备的语言技术栈都少不了健壮的调试工具,对于NodeJS平台同样如此,笔者研究了几种调试NodeJS代码的方式,通过对比,还是觉得node-inspector的调试方式比较方便,而且和前端JavaScript代码的调试具有一致的体验,不仅健壮,而且方便.安装完成NodeJS后执行如下指令可以完成node-inspector安装. >npm install -g node-inspector node-inspector安装完成以后运行

解决运行nodejs代码Error: listen EADDRINUSE

解决运行nodejs代码Error: <wbr>listen <wbr>EADDRINUSE 错误listen EADDRINUSE 是比较常见的错误.'EADDRINUSE',借助有道的翻译,意思是:错误地址使用.'EADDRINUSE'应该是'error address in use'的缩写.后来借助google找到了合理的解释,说是你监听的端口已经被使用了! 在网上找解决方法,绝大部分是绕道而行--就是把端口改掉.无奈,我只能用80端口.但是怎么办? 在不懂nginx得情况下

NodeJS代码组织与部署

使用NodeJS编写程序前,为了有个良好的开端,首先需要准备好代码的目录结构和部署方式,就如同修房子要先搭脚手架.本章将介绍与之相关的各种知识. 一.模块路径解析规则 我们已经知道,require函数支持斜杠(/)或盘符(C:)开头的绝对路径,也支持./开头的相对路径.但这两种路径在模块之间建立了强耦合关系,一旦某个模块文件的存放位置需要变更,使用该模块的其它模块的代码也需要跟着调整,变得牵一发动全身.因此,require函数支持第三种形式的路径,写法类似于foo/bar,并依次按照以下规则解析

用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢nodejs路由和Ajax之间的数据传输,也就是表单提交,然后在用nodejs把数据写入mysql数据库 用到的东西比较多,但是还是很有趣的 1.安装node.js 安装node.js,直接去官网下载然后根据需求点击下一步就好了 Node.js安装包及源码下载地址为:https://nodejs.org

NodeJS基础一,安装NodeJs,express

今天学习nodejs,把我遇到的一些问题给记录下来,让我以后能方便查找 1.直接去nodejs的官网http://nodejs.org/上下载nodejs安装程序,双击安装就可以了 2.装好了nodejs之后,一般现在的版本,NPM管理工具应该已经会帮你一起装好.这个时候需要安装express 3.先设置NODE_PATH:C:\Program Files\nodejs\ ,然后放入path,msi安装文件好像会自动帮忙注入.有待考察 4.设置镜像,因为express不用镜像或许会下载不下来,建

nodejs使用tcp协议编程(nodejs服务器端,java客户端)

var net = require ('net'); var HOST = '192.168.1.50'; var PORT = 8809; net.createServer(function(sock){ console.log('CONNECTED:'+sock.remoteAddress + ":"+ sock.remotePort); sock.on('data',function(data){ console.log('DATA'+sock.remoteAddress +&q

解决Python代码编码问题 SyntaxError: Non-UTF-8 code starting with &#39;\xc1&#39;

导致出错的根源就是编码问题. 解决方案是: 在程序最上面加上: view plai# coding=gbk 这样程序就可以正常运行了. 解决Python代码编码问题 SyntaxError: Non-UTF-8 code starting with '\xc1'

更改Scala的代码自动补全快捷键code completion

使用Eclipse的代码补全快捷键alt+/已经习惯了,但是IntelJIDEA中这个快捷键组合没有效果,那么我们来修改之,按ctrl+alt+s打开设置界面 之后在keymaps中选择Eclipse即可,那么下面就要来修改了,在右上角的搜索框中输入completion,在MainMenu中可以找到 选中Basic那一行,右击,选择Add Keyboard Shortcut,在这个窗口的First Stroke中同时按住alt+/键即可,之后OK 更改Scala的代码自动补全快捷键code co

[搬运] 将 Visual Studio 的代码片段导出到 VS Code

原文 : A Visual Studio to Visual Studio Code Snippet Converter 作者 : Rick Strahl 译者 : 张蘅水 导语 和原文作者一样,水弟我现在也是使用 VS Code 和 Rider 作为主力开发工具,尤其是 VS Code 可以跨平台,又有丰富的插件支持和多种编程语言支持.当我从 VS 转移到以 VS Code 的开发过程中,遇到的最大问题就是代码提示的不完善(被 VS 和 R# 调教坏了,总想按 tab 键).当我看到原文作者通