https://www.liuwanlin.info/files/node.js调试

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命令来获取完整的调试命令列表。

  1. run (r)
  2. cont (c)
  3. next (n)
  4. step (s)
  5. out (o)
  6. backtrace (bt)
  7. setBreakpoint (sb)
  8. clearBreakpoint (cb)
  9. watch
  10. unwatch
  11. watchers
  12. repl
  13. restart
  14. kill
  15. list
  16. scripts
  17. breakpoints
  18. 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中调试了。

Author image
关于 superlin
Beijing, CN 主页
The reason why a great man is great is that he resolves to be a great man.
 
 
默认颜色 边栏居左 边栏居右