`
linmomo02
  • 浏览: 178906 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

node.js 调试技术总结

阅读更多

欲善其功,必先利其器--Nodejs调试技术总结

调试技术与开发技术构成了软件开发的基石。目前Nodejs作为新型的Web Server开发栈倍受开发者关注。总的来说Nodejs的应用程序主要有两部分:JavaScript编写的js模块和C语言编译的二进制模块。这里主 要介绍三种avaScript模块的调试方法:基于Nodejs内建的调试器,基于V8调试插件和基于Chrome浏览器的调试器。以下所有的操作都将基 于如下代码(example.js):

复制代码
var
 http = require('http');
var
 url = require('url');
http.createServer(function
 (req, res) {
        var
 path = url.parse(req.url).pathname;
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end(path);
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
复制代码

 

1. 基于Nodejs内建的调试器

Nodejs提供了一个内建调试器来帮助开发者调试应用程序。想要开启调试器我们需要在代码中加入debugger标签,当Nodejs执行到debugger标签时会自动暂停(debugger标签相当于在代码中开启一个断点)。代码如下:

var
 path = url.parse(req.url).pathname;
debugger
;

res.writeHead(200, {'Content-Type': 'text/plain'});

执行命令:node debug example.js 就可以进入调试模式。

在debug模式下,可以使用内建命令如repl去评估变量和表达式的值(如2所示)。我们也可以通过help命令来获取完整的调试命令列表。

Commands: 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

 

2. 基于V8插件的调试器
Nodejs是基于google V8的引擎上构建的,Google为Eclipse提供了一个对应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序就不再重复描述了, 网上已经有很多的文章了(具体可以参考这篇文章http://cnodejs.org/blog/?p=911)。唯一要注意的是在默认情况下V8引擎支 持的调试模式是本地模式。如果想要开启远程调试的话,我们需要修改Nodejs中的V8源文件:/deps/v8/src/platform- posix.cc

  addr.sin_family = AF_INET;
  addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK
); --> INADDR_ANY

  addr.sin_port = htons(port);

然后重新编译Nodejs。

提示:

用插件来调试nodejs程序,你有时候会遇到什么connect refuse, get version failed等等错误。那么请注意你使用的ip的地址, 一般下127.0.0.1的回环地址是都工作的。如果你使用真实的ip地址,请检查防火墙设置。

 

3. 基于Chrome浏览器的调试器

既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能。我们需要先通过npm来安装node-inspector

npm install -g node-inspector  // -g 导入安装路径到环境变量

node-inspector是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector来监听Nodejs的debug调试端口。

默认情况下node-inspector的端口是8080,可以通过参数--web-port=[port]来设置端口。在启动node- inpspector之后,我们可以通过--debug或--debug-brk来启动nodejs程序。通过在浏览器输入http://[ip address]:8080/debug?port=5858,我们会得到如下的调试窗口:

 这三种方法各自有优缺点,我个人比较欣赏node-inspector的方式。

 

 

原文地址:http://www.cnblogs.com/moonz-wu/archive/2012/01/15/2322120.html

分享到:
评论

相关推荐

    Node.js-《Node.js调试指南》

    《Node.js 调试指南》是本人整理的从事 Node.js 开发这几年的一些调试经验和思路,希望授人以鱼也能授人以渔。

    VS Code Node.js 调试器(debugger)的 launch.json 配置详解(示例代码讲解).rar

    VS Code Node.js 调试器(debugger)的 launch.json 配置详解(示例代码讲解).rar VS Code Node.js 调试器的 launch.json 配置详解: launch.json 文件用于配置 VS Code 的调试器。当我们想要使用 VS Code 来调试...

    Node.js调试技术总结分享

    Node.js是一个可以快速构建网络服务及应用的平台。该平台的构建是基于Chrome's JavaScript runtime,也就是说,实际上它是对Google V8引擎(应用于... 今天介绍Node.js调式目前有几种技术,需要的朋友可以参考下。

    Node.js 开发指南.pdf

    3.4.4 使用node-inspector调试Node.js 54 3.5 参考资料 55 第4章 Node.js核心模块 57 4.1 全局对象 58 4.1.1 全局对象与全局变量 58 4.1.2 process 58 4.1.3 console 60 4.2 常用工具util 61 4.2.1...

    Node.js-node-inspector-基于BlinkDeveloperTools的Node.js调试器

    node-inspector - 基于Blink Developer Tools的Node.js调试器

    Node.js入门经典pdf及书中源代码

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包,Node.js入门经典采用直观、循序渐进的方法对如何使用Node.js来开发及具速度和可扩展性优势的服务器端应用程序进行了讲解。  《Node.js入门经典》分为6...

    NIM(Node.js 调试管理工具).rtx

    谷歌浏览器里noejs调试用的扩展插件,具体使用参考文章https://blog.csdn.net/sinat_29158831/article/details/108849727 说明:自动启动Node.js调试窗口

    《Node.js权威指南 (实战)》陆凌牛(作者)epub

    《Node.js权威指南》旨在成为Node.js领域最全面、最系统和最具实战性的一本书,供初学者系统学习和开发者工作时参考。本书作者是资深Web开发专家,不仅全面、细致地讲解了Node.js的所有功能、特性、使用方法和开发...

    Node.js-用于Node.js的Chrome调试协议接口

    用于Node.js的Chrome调试协议接口

    node.js入门经典

    第3部分介绍了调试和测试Node.js应用程序的工具,以及部署Node.js应用的方法;第4部分讲解了Node.js实现实时编程的能力以及Socket.IO;第5部分介绍了Node.js API以及构建Node.js应用程序所使用的组件;第6部分则介绍...

    Node.js入门经典

    第3部分介绍了调试和测试Node.js应用程序的工具,以及部署Node.js应用的方法;第4部分讲解了Node.js实现实时编程的能力以及Socket.IO;第5部分介绍了Node.js API以及构建Node.js应用程序所使用的组件;第6部分则介绍...

    Node.js 实战

    相比之前的一些大语言分支 c/c++/java什么的,那些大语言在针对某一些应用都有很固定的范式去遵循,javascript/node.js还是一个比较年轻的语言或“技术”,所以对于大部分应用都没有任何范式,还有很大的空间去发挥...

    Node.js-njsTrace-一个Node.js跟踪和测量工具

    njsTrace -一个Node.js跟踪和测量工具,能看到所有函数调用,参数,返回值,以及在每个函数所花费的时间

    Node.js-inspect-process使用chrome-devtools用于Node.js简单调试的工具

    inspect-process:使用chrome-devtools用于Node.js简单调试的工具

    Node.js-利用websocket实现简单的外网映射工具便于日常调试接口

    利用websocket实现简单的外网映射工具,便于日常调试接口

    Node.js-ndb是针对Node.js的改进调试体验由ChromeDevTools支持

    ndb是针对Node.js的改进调试体验,由Chrome DevTools支持

    Node.js+开发指南

    3.4.4 使用node-inspector调试Node.js 54 3.5 参考资料 55 第4章 Node.js核心模块 57 4.1 全局对象 58 4.1.1 全局对象与全局变量 58 4.1.2 process 58 4.1.3 console 60 4.2 常用工具util ...

    Node.js 高级编程

    Node.js是一种主流框架,它允许你使用JavaScript快速构建具有高度可伸缩性的网络程序。可是,它有自己的学习曲线,这本较为深入的指南性图书首先介绍了Node.js平台的安装,然后重点关注:创建和加载模块;使用缓冲区...

    学生签到系统采用express框架的node.js后台源码+项目说明.zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,...学生签到系统采用express框架的node.js后台源码+项目说明.zip

Global site tag (gtag.js) - Google Analytics