自从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...
调试界面如下:
相关推荐
第三步:设置断点和开始调试 编辑好这个配置文件后,就可以设置一下断点,然后点击 start debug 按钮即可开始 debug 了。运行的效果,如图所示。 可以看到 Variables 面板里面有显示运行到断点处的相关变量情况,...
15. **社区和生态系统**:Node.js拥有庞大的开发者社区,提供了众多第三方模块。笔记可能会推荐一些常用的库和工具,以及如何参与社区活动。 这些知识点构成了Node.js开发的基础,通过深入学习和实践,可以成为一名...
NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。本指南将深入探讨NodeJS的核心概念、开发工具、模块系统、网络编程...
5. **npm 模块管理**: 理解了如何安装、引入和使用第三方 npm 模块,如 `axios`(HTTP 客户端)或 `body-parser`(解析请求体)。 6. **错误处理**: 学习了如何在 Node.js 中捕获和处理错误,确保程序的健壮性。 7...
### Node.js实战第二季知识点详解 ...以上就是Node.js实战第二季的相关知识点概述,希望能对学习Node.js的朋友们有所帮助。在实际开发过程中,还需要不断积累经验、优化代码质量,才能更好地发挥出Node.js的强大功能。
在本课程“besike-nodejs-hello:学习 nodejs 第 2 课”中,我们将深入探讨Node.js的基础知识,特别是在JavaScript环境中如何使用它来构建服务端应用。Node.js是建立在Chrome V8 JavaScript引擎之上的一个开源、跨...
- **第三方模块**:介绍npm包的查找、安装与使用,如`express`用于快速构建Web服务器,`axios`进行HTTP请求等。 - **自定义模块**:学习如何封装代码为模块,以及模块的导出与导入机制。 3. **网络编程** - **...
10. **NPM包管理**:如何使用npm安装、管理和发布第三方库,理解package.json文件的作用。 11. **错误处理**:在Node.js中,错误处理是关键,如何使用try...catch语句,以及Error对象。 12. **调试和测试**:介绍...
3. 第三方模块:通过npm(Node.js包管理器)安装,如axios(HTTP客户端)、express(Web框架)等。 三、Node.js网络编程 1. HTTP服务器:Node.js内置的http模块可以创建高性能的HTTP服务器,处理HTTP请求和响应。 2...
4. **丰富的生态系统**:Node.js拥有庞大的npm(Node Package Manager)生态系统,提供了数万个第三方模块,涵盖了从HTTP服务器到数据库连接等各种功能,极大地加速了开发过程。 5. **JavaScript无处不在**:使用...
10. **调试与性能优化**: 学习如何使用 Node.js 的内置调试工具,以及第三方工具如 Visual Studio Code 的 Node.js 插件,进行代码调试。了解如何通过日志、性能分析和代码优化提高 Node.js 应用的性能。 11. **...
7. **npm包管理器**:介绍Node.js的包管理器npm,如何安装、发布和管理第三方模块,以及依赖关系的解决。 8. **性能优化**:讲解如何优化Node.js应用,如避免回调地狱,使用Promise或async/await进行异步控制流,...
3. **安装依赖**:Node.js的包管理器npm(Node Package Manager)可以帮助你安装第三方库。例如,要安装Express框架,只需在项目根目录下运行`npm install express`。 ### 三、Node.js基础 1. **异步编程**:Node....
《Node.js 设计模式 第二版》是一本专注于Node.js应用开发的设计模式指南。Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它使得开发者可以在服务器端运行JavaScript代码。这本书的目标是帮助开发者掌握Node...
通过`require`函数,可以方便地引入和使用其他模块,如内置模块(如`fs`用于文件操作,`http`用于网络请求)和第三方模块。项目中可能涵盖了如何编写自定义模块、如何管理和发布到npm(Node Package Manager)等。 ...
Node.js v18的发布伴随着广泛的社区支持和丰富的第三方模块生态系统,确保了开发者可以利用大量的库和工具来加速他们的开发工作。 总的来说,Node.js v18是一个重要的里程碑,为开发者带来了许多性能和功能上的...
##使用开发:先根据.env.sample 生成自己的 .env.dev// 第一次运行请初始化数据库sh ./src/database/init_db.sh// 运行开发模式npm run dev// 或调试模式npm run debug注意: 需要自行启动redis服务,在 localhost:...