nodejs的调试
js的调试始终是一个比较麻烦也是比较困难的事情,从最原始的alert调试,到火狐的firebug工具,在到后来各个浏览器厂商的调试工具。调试工具的发展历程,也可以看出由JS构建的业务和技术逻辑越来越复杂,最初的调试工具已经不能很好的满足复杂逻辑调试。随着nodejs在服务端变得越来越热门,对于nodejs的调试也成了各个nodejs开发人员头痛的问题,还好现在各种调试工具也在不断的出现。今天主要总结一下命令行调试工具和inspector调试工具。
一 命令行调试工具使用
命令行调试工具使用,需要在启动js文件,通过这样的方式: node debug example.js,
》 node debug example.js
调试模式启动之后,默认程序停在了当前执行文件的第一行, 可以通过 next(n) 下一步, continue(cont), 执行到下一个断点,run(r)执行程序完成 ,step(s)进入函数内部,out(o)退出函数内部,backtrace(bt)打印当前执行堆栈, setBreakpoint(sb) 设置断点, clearBreakpoint(cb) 清楚断点, repl开启一个表达式执行控制台,restart重启调试,list(k)列出当前行,前后k行代码, scripts已经加载的JS文件列表等。
对于watch 和unwatch命令,能够增加对变量值的监控,通过watch('a), 之后,可以实时查看变量a值的变化,同时也可以通过unwatch('a')的方式取消监控。
还有另外一种方式启动调试模式,即通过kill命令给执行的node进程发送SIGUSR1信号,发送方式为: kill -s USR1 pid,
通过命令行的方式,可以在需要调试的时候,快速进入调试,从而解决问题,但是对于对命令行操作感觉有点困难的人来说,这个不是很友好的方式。当然inspector这方面就可能比较有优势。
二 inspector调试工具的使用
当然Inspector调试工具集成了V8引擎内部的调试API和Blink的界面交互功能,从而使的服务端JS的调试也可以像浏览器端调试JS那样方便。但是这种调试方式也只能在具有 blink开发工具的浏览器下进行。
为了能够使用inspector工具,首先需要安装他,当然了这个只是作为开发的全局安装: npm install -g node-inspector
安装完成之后,要调试某个JS文件,首选需要开启调试模式,比如上边的example.js 那么开启模式为:node debug example.js
然后在另外的terminal 启动 inspector ,启动方式为: node-inspector ,操作界面是每个前端都非常熟悉的界面,如下:
通过这两种方式,后期我们在开发的时候,就能够很好的调试nodejs。
nodejs的调试的更多相关文章
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- nodejs的调试debug
目录 简介 开启nodejs的调试 调试的安全性 使用WebStorm进行nodejs调试 使用Chrome devTools进行调试 使用node-inspect来进行调试 其他的debug客户端 ...
- Linux下用node-inspector实现NodeJS远程调试开发
1.首先安装 node-inspector npm install -g node-inspector -g表示全局安装,如果像我一样安装失败,再试几次,npm偶尔就会这样抽风... 这一步是关键的, ...
- 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 ...
- 搞定 NodeJS 开发调试
代码调试有时候是一种充满挑战的工作,如果有一个趁手的调试工具的话,往往可以做到事半功倍的效果.得益于这些年的快速发展,在 NodeJS 生态中已经有了多种调试工具可以使用.我们今年就来分享几个常用的调 ...
- nodejs的调试(node-inspector)
我们在接触客户端javascript的时候,调试利器就是firebug ,也是当年为何喜欢用上firefox 浏览器的主要动力,当然,后来 chrome 插件里也出现了firebug的身影..... ...
- nodejs开发调试时,使用supervisor
如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重 ...
- NodeJS代码调试
1.在Chrome打开chrome://flags/#enable-devtools-experiments 2.激活Developer Tools experiments 3.重启Chrome 4. ...
随机推荐
- 【转】使用junit进行单元测试(中级篇)
转自:http://blog.csdn.net/andycpp/article/details/1327346 我们继续对初级篇中的例子进行分析.初级篇中我们使用Eclipse自动生成了一个测试框架, ...
- Windows Phone开发工具初体验【转载】
Windows Phone开发工具在MIX 2010上火热登场了.Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Si ...
- Codeforces Round #321 (Div. 2) A. Kefa and First Steps 水题
A. Kefa and First Steps Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/58 ...
- Tricks Device (hdu 5294 最短路+最大流)
Tricks Device Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- CustomViewWith_Image_Text_Video
CustomViewOfTextVideoImage.rar https://github.com/Grishu/CustomViewWith_Image_Text_Video
- [AngularJS] Using AngularJS interceptors with $http
Sometimes you might need to modify HTTP requests and responses. This could be for a variety of reaso ...
- java_泛型 TreeSet 判断hashcode/length(升序排列)
package ming; import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; ...
- Javascript之基本包装类型
一.基本包装类型概述 var box = 'Mr. Lee';//定义一个字符串 var box2 = box.substring(2);//截掉字符串前两位 alert(box2);//输出新字符串 ...
- hdf5 api
https://www.physics.ohio-state.edu/~wilkins/computing/HDF/hdf5tutorial/index.html
- mysql 导入导出sql文件
使用mysqldump导出sql文件 目前清楚的mysqldump语法是: mysqldump -h[hostname] -u[username] -p [databasename] > [sq ...