12bet,调试技术与开发技术构成了软件开发的基石。目前Nodejs作为新型的Web Server开发栈倍受开发者关注。12bet,总的来说Nodejs的应用程序主要有两部分:JavaScript编写的js模块和C语言编译的二进制模块。Node.js有三种调试JavaScript模块的调试方法:基于Nodejs内建的调试器,基于Chrome浏览器的调试器和基于V8调试插件。
这里12博体育,只介绍前两种,第三种是在eclipse中的,这里不做介绍。下面具体介绍这两种调试方法:
一. 基于Nodejs内建的调试器
Nodejs提供了一个内建调试器来帮助开发者调试应用程序。12博体育,想要开启调试器我们需要在代码中加入debugger标签,当Nodejs执行到debugger标签时会自动暂停(debugger标签相当于在代码中开启一个断点)。代码如下:
var path = url.parse(req.url).pathname;
debugger;
res.writeHead(200, {'Content-Type': 'text/plain'});
12bet,执行命令:node debug example.js 就可以进入调试模式。 在debug模式下,12bet,可以使用内建命令如repl去评估变量和表达式的值(如2所示)。我们也可以通过help命令来获取完整的调试命令列表。
- run (r)
- cont (c)
- next (n)
- step (s)
- out (o)
- backtrace (bt)
- setBreakpoint (sb)
- clearBreakpoint (cb)
- watch
- unwatch
- watchers
- repl
- restart
- kill
- list
- scripts
- breakpoints
- version
二. 基于Chrome浏览器的调试器
既然Node.js使用的是chrome v8引擎,那么是否可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能。我们需要先通过npm来安装node-inspector:
npm install -g node-inspector // -g 全局安装
node-inspector是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector来监听Nodejs的debug调试端口。
nohup node-inspector &
默认情况下node-inspector的端口是8080,可以通过参数–web-port=[port]来设置端口。在启动node-inpspector之后,我们可以通过–debug或–debug-brk来启动nodejs程序。通过在浏览器输入http ://[ip address]:8080/debug?port=5858,我们就可以在chrome中调试了。