用node-inspector调试Node.js(转自NOANYLOVE'S BLOG)

原文地址:http://www.noanylove.com/2011/12/node-the-inspector-debugging-node-js/

用node-inspector调试Node.js

2011年12月15日 | 标签: JavaScriptNode.js调试

重要:因为node和node-inspector更新了的缘故,现在的界面有一些不同,抽空我会更新一下。另外,下面的debug参数前应该是两个“-”,不知道为什么显示出来只有一个“-”。比较郁闷。

据说,一个程序员一辈子干得最多的事不是在写代码,而是在和Bug做斗争,所以我们也需要找个能够调试Node.js代码的工具。Node.js的JavaScript与我们常见的用于浏览器客户端的JavaScript有许多不同之处,这使得许多支持JavaScript开发的IDE或者调试器等都不支持Node.js(我会在以后的文章中介绍一些支持Node.js开发的IDE)。这里,我介绍一个官方推荐的Node.js调试工具——node-inspector。

准备工作

node-inspector通过Web网页与用户进行交互,比命令行下的调试工具要美观、操作也方便许多。首先我们需要一个基于WebKit内核的浏览器,比如Chrome, Safari,或者 Maxthon(遨游浏览器)、QQ浏览器、搜狗浏览器等(注意:后面三款浏览器只有在“极速模式”下才是WebKit内核的)。

然后我们通过npm以全局模式安装node-inspector。在命令行下运行:npm install –g node-inspector 。稍等片刻后,npm会输出一大段路径表明把node-inspector以及其依赖的模块安装在了什么地方。

PS:node-inspector使用的paperboy模块有一个bug,在过滤路径的时候没有考虑到Windows下情况,导致在Windows下运行时会返回403。不过前几天paperboy发布的新版本0.0.3终于修复了这个问题,所以现在可以正常使用了。

开始调试

调试的时候,Node.js主程序会在本地开启一个TCP调试端口,调试工具通过这个端口与Node.js通信来实现调试。我们通过node –debug[=port] App.js 或者 node –debug-brk[=port] App.js (注意,这里有显示问题,debug前面应该有两个“-”,不知道为什么显示出来只有一个了,下面代码框中的那种格式才是正确的)命令以调试模式运行脚本。–debug 和
–debug-brk参数的区别在于,前者会直接运行脚本,而后者则会暂停在脚本开头处,等待调试器连接后,由调试器的指令来决定运行。=port是可选参数,紧随在–debug或者–debug-brk之后(中间没有空格),用于指定Node开启的调试端口,如果不指定该参数,则Node.js默认会使用5858端口。App.js则是你要调试的脚本文件名。

如:

node --debug NodeApp.js
node --debug-brk=8080 MyTest.js

直接上实例,我们把下面的脚本保存为example.js,然后运行node –debug example.js 。

var util = require(‘util‘);
var count = 0;
util.debug("Starting ...");
function timer_tick() {
	count = count + 1;
	util.debug("Tick count: " + count);
	if (count === 10) {
		count += 1000;
		util.debug("Set break here");
	}
	setTimeout(timer_tick, 1000);
}
timer_tick();

然后在命令行中运行:node-inspector ,如图一所所示。若提示warn  – error raised: Error: listen EADDRINUSE 则表明node-inspector默认使用的8080端口已经被别的程序占用了,你可以通过node-inspector –web-port=新端口号 来指定一个未被占用的端口。

图一:运行node-inspector

然后我们在浏览器中打开http://127.0.0.1:8080/debug?port=5858 (别管命令提示符中的那个http://0.0.0.0:8080/debug?port=5858 地址,那是逗你玩的)。URL中的port=5858指定了Node.js的调试端口,如果你在运行Node.js时指定了调试端口,则这里的5858要修改成指定端口。

PS:可以修改node-inspector安装目录下的config.json指定node-inspector的Web端口和调试端口。

我这里用的是Maxthon,注意要使用“极速模式”(就是地址栏右边那个小闪电的图标)。打开后调试界面如图二所示。

图二:node-inspector调试界面

界面的主体部分就是代码浏览窗口,如果没有显示代码的话,点击界面最左上方的Scripts按钮即可;若显示的代码不是example.js的内容,点击界面左上方、Profiles按钮下方的按钮(就是图三中显示“D:\example.js:0 ”的那个按钮),在弹出的下拉列表中选中example.js,如图三所示。你也可以在这里切换到其他模块文件中查看其代码。

图三:切换代码

点击代码前的代码行数字就可以给当前代码行下断点。在这个实例中,我们可以在util.debug(“Tick count: ” + count);下断点,Node就会很快停下。

界面最左边的面板提供了代码搜索,以及“暂停/继续”、“步过”、“步入”、“执行到返回”、“激活/取消断点”几个常用功能按钮,还有监控表达式等功能,如图四所示。

图四:功能版面

个人认为node-inspector的调试界面做得非常不错,简介美观,基本功能都具备了,是调试Node.js的一个不错选择。

用node-inspector调试Node.js(转自NOANYLOVE'S BLOG)

时间: 2024-08-04 16:28:38

用node-inspector调试Node.js(转自NOANYLOVE'S BLOG)的相关文章

nodejs 使用Google浏览器进行可视化调试——Node Inspector工具

1.npm安装Node Inspector工具,全局安装 命令行执行npm install -g node-inspector 2.启动Node Inspector工具,命令行执行 node-inspector 3.新开一个窗口使用--debug或者--debug-brk执行程序,例如node --debug app.js 4.google浏览器输入localhost:8080/debug?port=5858,进入调试界面 5.新开窗口正常访问程序,取决于第三步中的服务端口.

使用 node-inspector 调试 Node.js

大部分基于 Node.js 的应用都是执行在浏览器中的, 比如强大的调试工具 node-inspector. node-inspector 是一个全然基于 Node.js 的开源在线调试工具,提供了强大的调试功能和友好 的用户界面,它的用法十分简便. 首先,使用 npm install -g node-inspector 命令安装 node-inspector,然后在终 端中通过 node --debug-brk=5858 debug.js 命令连接你要除错的脚本的调试server, 启动 no

使用Chrome DevTools直接调试Node.js与JavaScript(并行)

Good News: 现在我们可以用浏览器调试node.js了!!! 前提 Node.js 6.3+, 这个可上Node.js官网自行下载: Chrome 55+. 如果您本地的chrome升级到最新版后还是<55, 可以从此处下载:Chrome Canary,亲测可行. 配置 就目前来说,在浏览器端并行调试JavaScript与Node.js还属于新特性,新体验.为了能够正常使用,你还需要做如下配置: 输入url:chrome://flags/#enable-devtools-experime

vscode 调试node.js

在开发的过程中,几乎不可能一次性就能写出毫无破绽的程序,断点调试代码是一个普遍的需求. 作为前端开发工程师,以往我们开发的JavaScript程序都运行在浏览器端,利用Chrome提供的开发者工具就可以方便的进行源码断点调试.其步骤有四,详情不表,粗略概括如下: 打开Chrome开发者工具: 点击进入Sources标签页,在页面的左侧就能看到JS代码的目录: 找到需要设置断点的源文件,在需要中断的哪行代码左侧单击鼠标左键,就可以设置断点,如果你的代码是uglify过的,则需导入相应的source

vs.code调试node.js的C++扩展

其实也很简单 点击“Add Configration..”后,会在launch.json增加一个节点,稍调整两个位置 以上完了后,就能在cpp源码里加上自己的断点,执行debug调试我们的C++源代码了.记住这个“(Windows) Launch",下面一步会选择它.当然你也可以自己改另一个名字 点击“三角”程序就会跑起来,没有问题的话,程序会停在执行过程中遇到的第一个“断点”的位置. 有一点需要注意:在我们修改代码后,必须要执行一次build node-gyp build 如果我们已有多年使用

使用WebStorm调试node工程

coder比较偏好debug,调试node比较麻烦,我们借助高大上的工具webStorm(我用的是10)来调试node,配置也比较简单,直接上图: 首先,配置node环境,在导航栏选择"Edit/configuration", 接下来配置 注:javascript file 为node的入口 到这里还没有结束,还需要配置远程调试,在上面的窗口中,选择defaults中的 node.js remote debug: 下面就可以debug了,入口在这里:

使用webstorm调试node程序

前言 相信大家接触过不少node代码了,如果你应用的比较初级或者针对你的项目不需要接触过深的node代码,也许你仅仅需要简单的console.log('your variable')就完全满足你的需要了.如果你应用node比较深入,想要调试(debug)之,我想你应该接触过node-inspector,大致用法流程,简单如下—— 1.安装:npm install -g node-inspector 2.启动debug模式(单独命令行): node-debug &(该命令默认8080端口) nod

【转】node.exe调试JavaScript代码

node.exe调试JavaScript代码 目的: Console.log可以打印一些信息,光有log还不够,当程序出现问题时通过log可以定位到错误位置,但是当我们想查看错误现场的变量时,log就无能为力了,一般情况下我们不会把所有的变量都打印出来.此时就需要断点的功能了,在程序里边打上断点,直接定位到错误位置,分析错误现场确认错误原因. 三种模式: nodejs内部提供一个debug机制,可以让程序进入debug模式,供开发者一步一步分析代码发现问题. 共有3中启动参数可以让程序进入deb

node-debug 三法三例之node debugger + node inspector

文档地址 http://i5ting.github.io/node-debug-tutorial 3种方法 node debugger( 已发布视频,已更新gitpage上,需要下载 ) node inspector( 已发布视频,已更新gitpage上,需要下载 ) 测试驱动开发(todo)