返回顶部
首页 > 资讯 > 前端开发 > node.js >Node.js调试技术总结分享
  • 102
分享到

Node.js调试技术总结分享

技术Nodejs 2022-06-04 17:06:10 102人浏览 安东尼
摘要

前言 众所周知调试技术与开发技术构成了软件开发的基石。目前nodejs作为新型的WEB Server开发栈倍受开发者关注。总的来说nodejs的应用程序主要有两部分:javascript编写的js模块和C语

前言

众所周知调试技术与开发技术构成了软件开发的基石。目前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/');

一. 基于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

二. 基于V8插件的调试器

Nodejs是基于Google V8的引擎上构建的,Google为Eclipse提供了一个对应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序就不再重复描述了,网上已经有很多的文章了,唯一要注意的是在默认情况下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地址,请检查防火墙设置。

三. 基于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的方式。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程网的支持。

--结束END--

本文标题: Node.js调试技术总结分享

本文链接: https://lsjlt.com/news/12752.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Node.js调试技术总结分享
    前言 众所周知调试技术与开发技术构成了软件开发的基石。目前Nodejs作为新型的Web Server开发栈倍受开发者关注。总的来说Nodejs的应用程序主要有两部分:JavaScript编写的js模块和C语...
    99+
    2022-06-04
    技术 Node js
  • JavaScript逆向调试技巧总结分享
    目录前言一、加密分析二、调试技巧1、日志分析2、常见算法2.1)MD52.2)Base642.3)进制处理三、Chrome 调试技巧总结前言 前段时间尝试对某音的 PC 端进行了逆向...
    99+
    2024-04-02
  • JavaScript日志调试技巧分享
    JavaScript日志调试技巧分享 在开发JavaScript应用程序时,调试是必不可少的。调试是寻找程序错误并修复它们的过程。日志是调试过程中非常有用的工具,可以帮助我们跟踪代码的执行过程,捕获错误和异常,以及了解程序的性能。 本文将介...
    99+
    2023-09-04
    日志 javascript django
  • 总结分享Python冷门的技巧
    本篇文章给大家带来了关于Python的相关知识,其中主要整理了冷门的技巧的相关问题,包括了first库、tqdm库、delattr、!cmd操作、this库等等内容,下面一起来看一下,希望对大家有帮助。【相关推荐:Python3视频教程 】...
    99+
    2022-07-13
    python
  • PHP中常用的魔术方法(总结分享)
    本篇文章给大家带来了关于PHP的相关知识,PHP把所有”__”开头的方法当做魔术方法,下面主要为大家介绍了PHP中常用的几个魔术方法,文中示例代码讲解详细,需要的可以参考一下。(推荐教程:PHP视频教程)构造方法 / __construct...
    99+
    2024-04-02
  • Java为主线对测试开发进行技术栈分析总结
    这篇文章主要讲解了“Java为主线对测试开发进行技术栈分析总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java为主线对测试开发进行技术栈分析总结”吧!...
    99+
    2024-04-02
  • PHP 防抖技术的应用案例分享和实战经验总结
    引言:在我们的日常开发工作中,经常会遇到一些需要响应用户事件的场景,如搜索框的自动补全、监听窗口滚动事件、监听输入框的实时输入等。但是,一些特殊场景下,用户事件的频繁触发会造成多次重复的请求,这对服务器造成不小的压力。为了解决这个问题,我们...
    99+
    2023-10-21
    应用案例分享 PHP 防抖技术 实战经验总结
  • Android面试技术点汇总
    activity 1 fragment以及与activity交互 (1)通过Bundle传参,从而实现Fragment之间的数据交互 (2)通过在Fragment内部定义一个回...
    99+
    2022-06-06
    Android
  • JavaScript必备的断点调试技巧总结(推荐)
    目录为什么要使用 debugger Chrome debugger 基本用法 VS Code 调试 SPA 应用 Chrome 调试 Nodejs 使用 VS Code 调试 Nod...
    99+
    2024-04-02
  • 详解Intellij IDEA 2017 debug断点调试技巧(总结)
    在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的,有的人keymap是mac版的,有的是Window...
    99+
    2023-05-30
    debug 断点调试 tell
  • PHP程序500错误的调试技巧分享
    PHP程序500错误的调试技巧分享 随着Web开发的不断发展,PHP作为一种广泛应用的服务器端脚本语言,受到了广泛的关注和应用。然而,在使用PHP进行开发的过程中,我们难免会遇到各种问...
    99+
    2024-03-07
    调试技巧 php错误 编程调试 php解析
  • 总结分享10个超棒的JavaScript简写技巧
    目录1.合并数组2.合并数组(在开头位置)3.克隆数组4.解构赋值5.模板字面量6.For循环7.箭头函数8.在数组中查找对象9.将字符串转换为整数10.短路求值补充几点编码习惯1....
    99+
    2024-04-02
  • 达梦7入门技术总结-
    说明: 1)该实验所有过程均是本人亲自敲命令完成,所有代码运行正确 2)安装过程使用的是suse11 sp3操作系统,后续的实验过程换成了麒麟中标,因此部分路径可能存在差异 3)安装过程使用了命令行安装,图形界面简单,因此本文没有介绍 4)...
    99+
    2017-08-27
    达梦7入门技术总结-
  • Python基础技术问题总结
    Introduction此篇文章总结python一些常见的技术问题,每一个都是简短的解释,篇幅不大,不断更新中…解释一下python的 and-or 语法python的and-or常常被用来实现类C语言中的三元运算符:, 更骚包的写法是 x...
    99+
    2023-01-31
    基础 技术 Python
  • C++技术中的调试:高级调试技巧,为您提升技能
    c++++的高级调试技巧使用断点暂停程序,检查变量值。监视变量跟踪其值的變化。设置条件断点,仅在特定条件满足时暂停。使用 gdb 执行高级操作,如单步执行和内存检查。利用编译器和静态分析...
    99+
    2024-05-08
    调试 c++
  • Golang技术中分布式系统调试技巧有哪些?
    调试 golang 分布式系统时,有以下技巧:日志记录:使用 log 包记录消息,提供足够的调试信息。跟踪:使用 trace 包跟踪请求和响应,提供系统行为的端到端视图。profilin...
    99+
    2024-05-07
    分布式系统 调试技巧 golang
  • 分享ORACLE SEQUENCE跳号总结
    在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢...
    99+
    2024-04-02
  • JavaScript总结分享之闭包
    以上就是JavaScript总结分享之闭包的详细内容,更多请关注编程网其它相关文章!...
    99+
    2022-11-22
    前端 JavaScript
  • Hadoop调优技巧分享
    调整集群配置:在Hadoop集群中,可以调整各种配置参数来优化性能,如增加数据块大小,调整副本数,调整内存和CPU资源等。 ...
    99+
    2024-02-29
    Hadoop
  • iOS中CPU线程调试的高级技巧分享
    前言 最近在开发直播,发现CPU性能被打满后导致CPU降频,发热严重,然后卡顿… 为了定位这个问题我们花费了至少 3天的时间 一点一点跟踪CPU的线程代码,当遇到C++的threa...
    99+
    2022-05-31
    cpu 线程 调试
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作