学习NodeJS第三天:打造Nodejs的调试环境(上)

简介: 自从 NodeJS 问世以来,我们注意到的一个现象是,开源生态围绕 NodeJS 的扩展(Extends)、插件(Plugins)或工具(Tools/Utilis)在不断地增多,可见当中之蓬勃。

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

话说 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 插件。作者 Ryan Dahl 有考虑到,直接在 V8  C++ / Eclipse Java 的最终环境中加入调试器而非远程调试的,——但是为什么不这样做?原因是什么?作者的说法是为了避免插件在 C++/Java 两者运行时带来的不稳定性。

好,休费多唇舌,咱们从基础部分进入调试 nodejs 的介绍。首先是安装 Google Chrome Developer Tools。假设用户已经了解Eclipse的基本使用(熟悉怎么安装 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】按钮旋即计入调试界面(如图一)。至此,我们安装调试插件和设置端口部分已经完成了。打算了解如何在 JavaScript 源代码中进一步的调试吗?例如打点、步进、监视等的调试基本操作内容……在下一篇中将为大家作介绍!

目录
相关文章
|
1月前
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
64 3
|
3月前
|
JavaScript 前端开发 关系型数据库
如何学习 Node.js?
【8月更文挑战第4天】如何学习 Node.js?
38 3
|
2月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
本文介绍了Twaver HTML5中的拓扑元素(Element),包括网元(Element)、节点(Node)和连线(Link)的基本概念和使用方法。文章详细解释了Element的属性和方法,并通过示例代码展示了如何在React组件中创建节点、设置节点属性和样式。
44 1
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
|
2月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
2月前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
2月前
|
JavaScript 前端开发 Windows
NodeJS的环境部署
介绍如何在Windows操作系统上安装Node.js环境,包括下载长期支持版本的Node.js、安装程序、编写测试代码并执行,以及如何在WebStorm集成开发环境中配置和运行Node.js。
48 1
|
3月前
|
JavaScript 前端开发 API
node 学习方式
【8月更文挑战第12天】node 学习方式
42 4
|
3月前
|
缓存 JavaScript Ubuntu
Node.js环境怎么搭建?
【8月更文挑战第4天】Node.js环境怎么搭建?
66 1
|
3月前
|
JavaScript Serverless Linux
函数计算产品使用问题之遇到Node.js环境下的请求日志没有正常输出时,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
JavaScript Linux API
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤
【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD集成登录并部署在App Service Linux环境中的实现步骤