Node.js调试技术总结分享
序
众所周知,调试技术和开发技术构成了软件开发的基石。目前,Nodejs作为一种新的Web Server开发栈,备受开发者关注。一般来说,Nodejs的应用程序主要有两部分:用JavaScript编写的js模块和用C语言编译的二进制模块。
主要介绍了avaScript模块的三种调试方法:基于Nodejs的内置调试器、基于V8的调试插件和基于Chrome浏览器的调试器。
以下所有操作都将基于以下代码(示例. js):
var http=require(' http ');var URL=require(' URL ');函数(req,res) { var path=url.parse(req.url)。路径名;res.writeHead(200,{ ' Content-Type ' : ' text/plain ' });res.end(路径);}).听(1337,' 127 . 0 . 0 . 1 ');console.log('服务器运行于http://127 . 0 . 0 . 1:1337/');1.基于Nodejs的内置调试器
Nodejs提供了一个内置调试器来帮助开发人员调试应用程序。要打开调试器,我们需要在代码中添加一个调试器标签,当Nodejs执行到调试器标签时,它会自动暂停(调试器标签相当于在代码中打开一个断点)。代码如下:
var path=url.parse(req.url)。路径名;调试器;res.writeHead(200,{ ' Content-Type ' : ' text/plain ' });执行命令:node debug example.js进入调试模式。
在调试模式下,可以使用repl等内置命令来评估变量和表达式的值(如图2所示)。我们还可以使用help命令获取调试命令的完整列表。
Commands: run (r),cont (c),next (n),step (s),out (o),backtrace (bt),setbreakpointer(sb),clear breakpointer(CB),watch,unwatch,watchers,repl,Restart,kill,list,scripts,断点,版本II。基于V8插件的调试器
Nodejs建立在google V8的引擎之上,google为Eclipse提供了相应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序的描述就不再重复了。网上已经有很多文章了。唯一需要注意的是,V8引擎支持的调试模式默认为本地模式。如果要开始远程调试,需要在Nodejs:/deps/V8/src/platform-POSIX . cc中修改V8源文件。
addr.sin _ family=AF _ INETaddr . sin _ addr . s _ addr=htonl(INADR _ LOOPBACK);-INADR _ ANY addr . sin _ port=htons(端口);然后重新编译Nodejs。
提示:
用插件调试nodejs程序时,有时会遇到连接拒绝、获取版本失败等错误。那么请注意你使用的ip地址。一般来说,127.0.0.1的环回地址是可行的。如果您使用真实的ip地址,请检查防火墙设置。
Iii .基于Chrome浏览器的调试器
既然可以通过V8调试插件进行调试,那么还可以使用Chrome浏览器的JavaScript调试器进行调试吗?节点检查器模块提供了这种可能性。我们需要首先通过npm安装节点检查器
Npm install -g node-inspector //-g导入环境变量node-inspector的安装路径,通过websocket转向调试输入输出。因此,在调试之前,我们应该启动节点检查器来监听Nodejs的调试端口。
默认情况下,node-inspector的端口为8080,可以通过参数-web-port=[port]进行设置。启动node-in spector后,我们可以通过-debug或- debug-brk启动nodejs程序。输入http://[IP地址]:8080/调试?Port=5858,我们会得到如下调试窗口:
这三种方法各有优缺点,我个人比较欣赏节点-检查器方法。
摘要
以上就是本文的全部内容。希望本文的内容能给你的学习或工作带来一些帮助。有问题可以留言交流。谢谢你的支持。
版权声明:Node.js调试技术总结分享是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。