全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Node.js调试技术总结分享

前言

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

总结

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


# node.js  # 调试  # nodejs  # 调试工具  # chrome  # vscode调试node.js的实现方法  # Node.js使用supervisor进行开发中调试的方法  # 详解如何在vscode里面调试js和node.js的方法步骤  # sublime text配置node.js调试(图文教程)  # 详解使用Visual Studio Code对Node.js进行断点调试  # 基于node.js之调试器详解  # Node.js利用debug模块打印出调试日志的方法  # 利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)  # 调试Node.JS的辅助工具(NodeWatcher)  # Node.js 深度调试方法解析  # 调试器  # 内建  # 我们可以  # 可以通过  # 应用程序  # 情况下  # 如果你  # 是在  # 有很多  # 你有  # 要注意  # 三种  # 都将  # 请注意  # 可以使用  # 种方法  # 所示  # 这篇文章  # 要先  # 谢谢大家 


相关文章: 建站之星安装后如何自定义网站颜色与字体?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何选择PHP开源工具快速搭建网站?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  浅谈Javascript中的Label语句  网站制作知乎推荐,想做自己的网站用什么工具比较好?  如何选择适合PHP云建站的开源框架?  制作企业网站建设方案,怎样建设一个公司网站?  如何用免费手机建站系统零基础打造专业网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  已有域名和空间,如何快速搭建网站?  如何挑选高效建站主机与优质域名?  如何通过可视化优化提升建站效果?  定制建站如何定义?其核心优势是什么?  宝塔建站后网页无法访问如何解决?  动图在线制作网站有哪些,滑动动图图集怎么做?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何自定义建站之星网站的导航菜单样式?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  建站之星伪静态规则如何正确配置?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  建站之星云端配置指南:模板选择与SEO优化一键生成  如何确认建站备案号应放置的具体位置?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  网站制作员失业,怎样查看自己网站的注册者?  招贴海报怎么做,什么是海报招贴?  如何基于云服务器快速搭建网站及云盘系统?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  如何解决ASP生成WAP建站中文乱码问题?  如何配置支付宝与微信支付功能?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  建站之星导航如何优化提升用户体验?  网站制作模板下载什么软件,ppt模板免费下载网站?  香港网站服务器数量如何影响SEO优化效果?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  教学网站制作软件,学习*后期制作的网站有哪些?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  seo网站制作优化,网站SEO优化步骤有哪些?  建站之星后台密码遗忘如何找回?  视频网站制作教程,怎么样制作优酷网的小视频?  高防服务器租用首荐平台,企业级优惠套餐快速部署  建站之星好吗?新手能否轻松上手建站?  如何快速生成高效建站系统源代码? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。