`
niuzai
  • 浏览: 67918 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

【转】学习NodeJS第三天:打造Nodejs的调试环境

阅读更多

自从NODEJS问世以来,我们注意到的一个现象是,开源生态围绕Nodejs的扩展(Extends)、插件(Plugins)或工具 (Tools/Utilis)在不断地增多,可见当中之蓬勃。这一方面固然很好,但这里却不是重点讨论那些扩展或者插件,而是调试工具(debugger)本身。因为,没有一个调试工具,无法展开一丁点的开发工作,或者困难重重。大家心知肚明,调试器自必然不可或缺。官方 nodejs.org对调试器的态度也是不含糊的。原来,官方一早在nodejs内置基于Eclipse debugger plugin for V8 调试器的接口,为调试提供安排一套解决方案;另外还有一文编写针对“调试”的教程——本文恰恰是得益于出自于出自ry之手的这份教程 提炼而来。

话说Eclipse是一个大平台,开源的,任何有构思的东东都可以自由地在Eclipse平台上施展,好不快活,呵呵!急不及待地先看看这个调试器的界面,大概是这样的,

 

图一

图乃经典的Eclipse的风格的界面~但Eclipse,与nodejs的调试,本不互为一体,从何说起呢?Nodejs即就是Google V8的高层扩展,调试过程中还是必须经过V8下面打交道。Google V8引擎只是一个地道的JavaScript解释引擎,不包含调试模块在内,也就是说需要借助另外的调试模组参与之。所以V8/nodejs暴露开放了相关的调试接口,通过这些接口,整合到专门的调试模块中去,像Eclipse Debug View,如此就可以呈现一个专业的调试环境。

本文所介绍的调试器是Google Chrome Developer Tools,定位在面向Chrome开发者的工具包,而此刻我们就是借助它这个工具来调试nodejs的。Google Chrome Developer Tools在原理上是基于TCP远程的调试环境的这么一个Eclipse插件。作者ry有考虑到,直接在C++/Java的最终环境中加入调试器而不远程调试的,——为什么不这样做?原因是什么?作者的说法是为了避免插件在C++/Java运行时带来的不稳定性。

好,休费多唇舌,咱们从基础部分进入调试nodejs的介绍。首先是安装Google Chrome Developer Tools。假设用户已经了解Eclipse的基本使用(熟悉怎么安装的用户则可以跳过此步……),进入菜单选择【Help】--【Software Updates...】,如下图。

出现对话框后切换至【Available Software】标签页,如下图。

 

然后点击右方的【Add Site……】按钮,有否出现一个输入url网址的对话框?这是Google Chrome Developer Tools的下载地址了,我们贴上:

http://chromedevtools.googlecode.com/svn/update/dev/

然后确认OK,稍等待片刻,如果出现http://chromedevtools.googlecode.com/svn/update/dev/的树菜单,在其前面打勾选择下载。接着点击右边的【install……】。

 

稍等片刻计算依赖关系……

 

在【Review Licenses】的窗体中确认许可,然后点击【Next】,正式开始安装:

 

安装进度100%之后重启Eclipse IDE使插件生效。然后在菜单【Windows】--【Show View】--选择【Debug】切换到Eclipse的调试视图,即图一的界面(还没链接Nodejs),如下图。到这一步,调试插件被安装完成,接着 是设置调试器的部分。

 

如上图红色区域,点击【Debug】的图标旁边的倒三角,出现下拉菜单点击【Debug Configurations …】。然后从左边的选择项之中点击【Standalone V8 VM(独立V8虚拟机)】接着右键鼠标,选择【New】新建一个调试profile。

 

如下图,输入名称【name】和端口【Port】。可以设置端口为Node-5858、Node-5859、Node-5860……等等,但必须与nodejs脚本中所指定的端口一致。

 

最后点击【Debug】按钮旋即计入调试界面(如图一)。至此,我们安装调试插件和设置端口部分已经完成了。当然调试也就是so easy!


如果你想查看堆栈信息,输入以下启动脚本即可:

$ node --debug-brk dbgtest.js
debugger listening on port 5858
Waiting for remote debugger connection...


 

调试界面如下:

 

分享到:
评论

相关推荐

    保姆级教程:VsCode调试docker中的NodeJS程序.doc

    第三步:设置断点和开始调试 编辑好这个配置文件后,就可以设置一下断点,然后点击 start debug 按钮即可开始 debug 了。运行的效果,如图所示。 可以看到 Variables 面板里面有显示运行到断点处的相关变量情况,...

    Nodejs学习笔记.rar

    15. **社区和生态系统**:Node.js拥有庞大的开发者社区,提供了众多第三方模块。笔记可能会推荐一些常用的库和工具,以及如何参与社区活动。 这些知识点构成了Node.js开发的基础,通过深入学习和实践,可以成为一名...

    NodeJS开发指南_nodejs开发指南_

    NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。本指南将深入探讨NodeJS的核心概念、开发工具、模块系统、网络编程...

    nodejs-demo改进版

    5. **npm 模块管理**: 理解了如何安装、引入和使用第三方 npm 模块,如 `axios`(HTTP 客户端)或 `body-parser`(解析请求体)。 6. **错误处理**: 学习了如何在 Node.js 中捕获和处理错误,确保程序的健壮性。 7...

    nodejs实战第二季

    ### Node.js实战第二季知识点详解 ...以上就是Node.js实战第二季的相关知识点概述,希望能对学习Node.js的朋友们有所帮助。在实际开发过程中,还需要不断积累经验、优化代码质量,才能更好地发挥出Node.js的强大功能。

    besike-nodejs-hello:学习 nodejs 第 2 课

    在本课程“besike-nodejs-hello:学习 nodejs 第 2 课”中,我们将深入探讨Node.js的基础知识,特别是在JavaScript环境中如何使用它来构建服务端应用。Node.js是建立在Chrome V8 JavaScript引擎之上的一个开源、跨...

    NodeJS实战

    - **第三方模块**:介绍npm包的查找、安装与使用,如`express`用于快速构建Web服务器,`axios`进行HTTP请求等。 - **自定义模块**:学习如何封装代码为模块,以及模块的导出与导入机制。 3. **网络编程** - **...

    nodejs_tutorial:nodejs教程

    10. **NPM包管理**:如何使用npm安装、管理和发布第三方库,理解package.json文件的作用。 11. **错误处理**:在Node.js中,错误处理是关键,如何使用try...catch语句,以及Error对象。 12. **调试和测试**:介绍...

    Node.js-Nodejs学习笔记以及经验总结

    3. 第三方模块:通过npm(Node.js包管理器)安装,如axios(HTTP客户端)、express(Web框架)等。 三、Node.js网络编程 1. HTTP服务器:Node.js内置的http模块可以创建高性能的HTTP服务器,处理HTTP请求和响应。 2...

    NodeJS 10.14 LTS最新版64位

    4. **丰富的生态系统**:Node.js拥有庞大的npm(Node Package Manager)生态系统,提供了数万个第三方模块,涵盖了从HTTP服务器到数据库连接等各种功能,极大地加速了开发过程。 5. **JavaScript无处不在**:使用...

    NodeJsScript:学习 nodeJs

    10. **调试与性能优化**: 学习如何使用 Node.js 的内置调试工具,以及第三方工具如 Visual Studio Code 的 Node.js 插件,进行代码调试。了解如何通过日志、性能分析和代码优化提高 Node.js 应用的性能。 11. **...

    NodeJs0.10.11+开发指南

    7. **npm包管理器**:介绍Node.js的包管理器npm,如何安装、发布和管理第三方模块,以及依赖关系的解决。 8. **性能优化**:讲解如何优化Node.js应用,如避免回调地狱,使用Promise或async/await进行异步控制流,...

    nodejs手册中文版

    3. **安装依赖**:Node.js的包管理器npm(Node Package Manager)可以帮助你安装第三方库。例如,要安装Express框架,只需在项目根目录下运行`npm install express`。 ### 三、Node.js基础 1. **异步编程**:Node....

    Nodejs Design Patterns第2版 高清可编辑

    《Node.js 设计模式 第二版》是一本专注于Node.js应用开发的设计模式指南。Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它使得开发者可以在服务器端运行JavaScript代码。这本书的目标是帮助开发者掌握Node...

    pdf2htmlEX-nodejs-server:一个nodejs服务端,用于管理使用第三方工具pdf2htmlEX将pdf转换为html的任务,并对html输出的样式和功能进行了一些增强

    ##使用开发:先根据.env.sample 生成自己的 .env.dev// 第一次运行请初始化数据库sh ./src/database/init_db.sh// 运行开发模式npm run dev// 或调试模式npm run debug注意: 需要自行启动redis服务,在 localhost:...

    nodejs-cookbook:nodejs-cookbook 演示

    通过`require`函数,可以方便地引入和使用其他模块,如内置模块(如`fs`用于文件操作,`http`用于网络请求)和第三方模块。项目中可能涵盖了如何编写自定义模块、如何管理和发布到npm(Node Package Manager)等。 ...

    nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用.

    标题中的“nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用”意味着在Node.js环境中,开发者成功地实现了对Dubbo服务的RPC(远程过程调用)访问,利用了Dubbo协议的特性。Dubbo是阿里巴巴开源的一个高性能、轻量...

Global site tag (gtag.js) - Google Analytics