nodejs的调试(node-inspector)

我们在接触客户端javascript的时候,调试利器就是firebug ,也是当年为何喜欢用上firefox 浏览器的主要动力,当然,后来 chrome 插件里也出现了firebug的身影.....
但是服务器端开发语言node.js 一直以来调试不是特别方便,可能是之前被 virtual studio惯坏了,这种用 console.log() 去打印变量甚至回调数据实在是太蹩脚.
当然,有一款很强大的IDE ,webstrom对node.js提供了最全面的支持,也可以轻松配置来实现调试,下回有必要和大家分享一次.
今天要分享的是关于 node-inspector 下调试node.js程序.
第一步:
npm install -g node-inspector
全局安装 node-inspector
node-inspector@0.9. /usr/local/lib/node_modules/node-inspector
├── which@1.0.
├── async@0.9.
├── semver@3.0.
├── yargs@1.3.
├── debug@1.0. (ms@0.6.)
├── strong-data-uri@0.1. (truncate@1.0.)
├── rc@0.5. (strip-json-comments@0.1., deep-extend@0.2., ini@1.3., minimist@0.0.)
├── serve-favicon@2.2. (ms@0.7., fresh@0.2., parseurl@1.3., etag@1.5.)
├── glob@4.5. (inherits@2.0., once@1.3., inflight@1.0., minimatch@2.0.)
├── express@4.12. (merge-descriptors@1.0., utils-merge@1.0., cookie-signature@1.0., methods@1.1., fresh@0.2., cookie@0.1., escape-html@1.0., range-parser@1.0., content-type@1.0., finalhandler@0.3., vary@1.0., parseurl@1.3., serve-static@1.9., content-disposition@0.5., path-to-regexp@0.1., depd@1.0., qs@2.4., debug@2.1., etag@1.5., on-finished@2.2., send@0.12., accepts@1.2., type-is@1.6., proxy-addr@1.0.)
├── biased-opener@0.2. (opener@1.4., minimist@1.1., x-default-browser@0.3., browser-launcher2@0.4.)
├── ws@0.4. (tinycolor@0.0., options@0.0., commander@2.1., nan@1.0.)
├── v8-debug@0.4. (nan@1.7.)
└── v8-profiler@5.2. (nan@1.5.)
显示如上代码说明安装成功.
第二步:
终端定位到你要调试的项目根目录下
localhost:nodeREST hywanliyuan$
输入如下指令启动项目
localhost:nodeREST hywanliyuan$ node --debug server.js
Debugger listening on port
listen
上面的 server.js 是我项目的启动文件,
下面接着输出在端口 5858 下监视调试器.
最下面是是程序启动文件 app.js 输出内容, listen 8000
第三步:
打开另外一个终端,定位到要调试项目的根目录,然后输入
node-inspector
运行得到如下结果
localhost:nodeREST hywanliyuan$ node-inspector
Node Inspector v0.12.8
Visit http://127.0.0.1:8080/?port=5858 to start debugging.
告诉我们调试器运行在 本地 127.0.0.1:8080 下.我们复制上面的调试地址.
第四步:
选择一款支持 node-inspector 的浏览器,你可以选择 chrome 或者 firefox
我用的是 chrom 打开:

你可以在浏览器看到启动页的所有代码都被读取出来,左侧单击鼠标即可创建一个端点,如上图 console.log 前我点了一个断点.
右侧操作界面可以选择继续运行,或者单步运行(快捷键F10)
下方的界面显示变量值和输出.用起来还是相当不错的,如果在单步模式下调试,会一层一层深入的核心模块中的代码. 源代码地址
nodejs的调试(node-inspector)的更多相关文章
- nodejs 使用Google浏览器进行可视化调试——Node Inspector工具
1.npm安装Node Inspector工具,全局安装 命令行执行npm install -g node-inspector 2.启动Node Inspector工具,命令行执行 node-insp ...
- 快捷使用Node Inspector调试NodeJS
一:介绍 NodeJS开发有很多种调试方式,比如输出Log.WebStorm自带的调试器.Node Inspector等,其中Node Inspector是比较流行和被推荐的一种. 但是Node In ...
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- node-debug 三法三例之node debugger + node inspector
大家对nodejs调试应该都比较头疼,至少我这个不用IDE写js的人很头疼这个,其实node的生态圈非常好 有非常好的工具和非常潮的开发方式 这里总结了3法3例,希望能对大家有所帮助 文档地址 ht ...
- nodejs的调试
js的调试始终是一个比较麻烦也是比较困难的事情,从最原始的alert调试,到火狐的firebug工具,在到后来各个浏览器厂商的调试工具.调试工具的发展历程,也可以看出由JS构建的业务和技术逻辑越来越复 ...
- Node Inspector 代理实现
本文首发于 https://github.com/whxaxes/blog/issues/9 背景 平时做 node 开发的时候,通过 node inspector 来进行断点调试是一个很常用的 de ...
- 优雅的使用Chrome调试Node程序
前言 我不知道大家用什么来调试node程序.可能有的人用node-inspect,但是这货很久没更新了,而且一堆的bug用起来很不爽:可能有的人用命令行来,但是这样操作不够灵活:还有人只用consol ...
- sublime配置nodejs运行调试js
node.js调试javascript的配置 1. 首先到 nodejs.org 下载 Node.js 安装包并安装.2. 打开 Sublime Text 编辑器.选择菜单 Tools --> ...
- Nodejs chrome 调试node-inspector
1.下载扩展: 全局安装 npm install -g node-inspector 2.开启debug调试: node --debug[=port] filename (默认端口5858)node ...
- 如何调试Node.js
Debugging Node.js with Chrome DevTools https://nodejs.org/en/docs/guides/debugging-getting-started/ ...
随机推荐
- 如何使用JMeter来实现更大批量的并发的解决方案(即如何设置controller和Agent)
http://www.testwo.com/blog/6373 近期在用JMeter进行负载测试的 时候,发现使用单台机器模拟测试超过比如500个进程的并发就有些力不从心或者说不能如实的反应实际情况, ...
- C++ 数组参数
在C++中数组不是按值传递的,传递的是第1个元素,即第0个元素的指针. 1.数组长度不是参数类型的一部分,函数不知道传递给它的数组的实际长度,因此当编译器对实参类型进行参数类型检查时,并不检查数组的长 ...
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE
TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别 TASK_INTERRUPT ...
- 【web性能】js应该放在html页面的什么位置
所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等.至到JS下载.解析.执行完毕后才开始继续并行下载其他资源并呈现内容. 外部JS的阻塞下载 所有浏览器在下载JS的 ...
- iOS 多线程下安全的使用定时器
iOS中timer相关的延时调用,常见的有NSObject中的performSelector:withObject:afterDelay:这个方法在调用的时候会设置当前runloop中timer,还有 ...
- 返回Json数据浏览器带上<pre></pre>标签解决方法
问题: 当后台获取到前台传来的文件时(例如上传功能, 导入功能), 返回类型为application/json, 这个时候响应到前端的JSON格式的数据格式可能是: <pre style=&q ...
- linux查询cpu核心数
linux怎么查询cpu核心数 1.查看逻辑CPU个数: #cat /proc/cpuinfo |grep "processor"|sort -u|wc -l24 2.由于有超线程 ...
- CentOS下支持exFAT与NTFS
exFAT: 1.下载fuse-exfat支持软件: exfat支持是通过fuse模块的方式支持的,其项目地址是: https://code.google.com/p/exfat/ ,当前版本是:1. ...
- CentOS配置SSH单向无密码访问
最近在研究一款文件系统,需要远程给客户机安装软件,且需要无SSH密码访问,另外需要远程给客户机传文件,每次输入root密码很不方便,就想到用ssh key生成公钥.私钥来验证,而避免每次就必须输入ro ...
- Android 自定义View,仿微信视频播放按钮
闲着,尝试实现了新版微信视频播放按钮,使用的是自定义View,先来个简单的效果图...真的很简单哈. 由于暂时用不到,加上时间原因,加上实在是没意思,加上……,本控件就没有实现自定义属性,有兴趣的朋友 ...