`
linmomo02
  • 浏览: 181145 次
  • 性别: 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开发中调试技巧和策略的资源,旨在帮助开发者深入理解Node.js的调试机制,并提供实践指导。 一、基础调试工具:内置的`console.log()` 在初识Node.js调试时,`console....

    Node.js-Node.jsforMobileApps是用于Android和iOS的完整版Node.js运行时

    Node.js开发涵盖了从创建新项目、安装依赖、编写代码、调试到部署的一系列过程。管理方面则可能涉及性能优化、错误追踪、版本控制、持续集成/持续部署(CI/CD)等实践。 文件名“JaneaSystems-nodejs-mobile-94129e9...

    使用node-inspector调试Node.js

    总结起来,`node-inspector`是一个强大的Node.js调试工具,它将浏览器的DevTools引入到Node.js环境,使调试变得更加直观和高效。熟练掌握`node-inspector`的使用,能够提升我们的开发效率,更好地理解和优化Node.js...

    Node.js硬实战 115个核心技巧.pdf

    《Node.js硬实战 115个核心技巧》是一本深度挖掘Node.js技术的书籍,旨在帮助开发者掌握Node.js的核心技能并提升实际开发能力。Node.js是基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O、事件驱动的特性在...

    node.js实战 pdf+源码

    《Node.js实战》是一本深度剖析Node.js技术的实战教程,旨在帮助读者掌握构建高效、可扩展的服务器端应用所需的知识和技能。本书的核心内容围绕JavaScript的非阻塞I/O模型,利用Node.js的异步事件驱动架构,来实现高...

    Node.js 6.x Blueprints(pdf+epub+mobi+code)

    6. **性能优化**:探讨Node.js的性能监控、调试技巧以及优化策略,如异步编程、内存管理等。 7. **部署与维护**:讲解如何将Node.js应用部署到云平台,如Heroku、Docker,以及持续集成和持续部署(CI/CD)的实践。 8...

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

    Node.js 是一个开源的、跨平台的 JavaScript 运行环境,它允许开发者在服务器端运行 JavaScript 代码。Node.js 的强大之处在于它提供了一个丰富的生态系统,包含了大量的第三方模块,其中 `node-inspector` 就是其中...

    Node.js-调试指南.pdf

    Node.js 调试指南是一个详细的指南,旨在帮助开发者更好地理解和掌握 Node.js 的调试技术。本指南涵盖了 Node.js 调试的多个方面,包括性能优化、内存分析、错误处理、日志记录、监控等。 CPU 篇 CPU 篇主要介绍了...

    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-inspect-process使用chrome-devtools用于Node.js简单调试的工具

    在Node.js开发过程中,调试和剖析是至关重要的环节,它能帮助我们理解代码运行时的行为,定位并修复问题。`inspect-process`是一个实用的工具,它允许开发者利用Chrome DevTools来对Node.js应用进行简单的调试。这个...

    Node.js调试技术总结分享

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

    node.js源码 node-v21.0.0.tar.gz

    Node.js是一款基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript编写程序,从而打破了JavaScript只能在浏览器中运行的传统。Node.js通过事件驱动、非阻塞I/O模型,使其轻量且高效,非常...

    node.js老版本包

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了全栈开发的流行。本篇将详细探讨 Node.js 的老版本包,包括 v14、v16 和 v12。 **Node...

    基于Vue.js-Node.js-Mongodb 的本人本科毕业设计.zip

    在这个过程中,学生不仅需要理解并掌握相关技术,还需要具备项目规划、需求分析、设计实现、测试调试等能力。本设计选择了Vue.js、Node.js和MongoDB,构建了一个完整的Web应用程序,涵盖了前端用户界面、后端服务...

    Node.js入门经典 源代码

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,极大地推动了前后端一体化的开发模式。本资源是书籍《Node.js入门经典》的配套源代码,对于初学者来说,是...

    v12.14.0版本的node.js 6.13.4版本的npm

    Node.js和npm是JavaScript开发中的两个关键工具,它们在构建可扩展的网络应用和服务中扮演着重要角色。本文将深入探讨v12.14.0版本的Node.js和6.13.4版本的npm,以及它们在开发环境中的应用。 首先,Node.js是一个...

    Learning Node.js Development 2018

    《Learning Node.js Development 2018》是一本专为初学者设计的Node.js开发指南,旨在帮助读者全面掌握Node.js的核心概念和技术。Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其异步、非阻塞I/O模型而...

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

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端使用 JavaScript 进行编程。Chrome 调试协议(Chrome Debugging Protocol, CDP)是 Google Chrome 浏览器提供的一种接口,用于...

Global site tag (gtag.js) - Google Analytics