前言

众所周知调试技术与开发技术构成了软件开发的基石。目前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 深度调试方法解析
# 调试器
# 内建
# 我们可以
# 可以通过
# 应用程序
# 情况下
# 如果你
# 是在
# 有很多
# 你有
# 要注意
# 三种
# 都将
# 请注意
# 可以使用
# 种方法
# 所示
# 这篇文章
# 要先
# 谢谢大家
相关文章:
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何在局域网内绑定自建网站域名?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
如何在香港服务器上快速搭建免备案网站?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
如何在建站主机中优化服务器配置?
,想在网上投简历,哪几个网站比较好?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
如何高效配置香港服务器实现快速建站?
css网站制作参考文献有哪些,易聊怎么注册?
C++如何编写函数模板?(泛型编程入门)
建站之星如何快速更换网站模板?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
制作网站的公司有哪些,做一个公司网站要多少钱?
临沂网站制作公司有哪些,临沂第四中学官网?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
c# await 一个已经完成的Task会发生什么
建站主机空间推荐 高性价比配置与快速部署方案解析
香港服务器网站推广:SEO优化与外贸独立站搭建策略
实例解析Array和String方法
广州建站公司哪家好?十大优质服务商推荐
招贴海报怎么做,什么是海报招贴?
如何通过WDCP绑定主域名及创建子域名站点?
三星网站视频制作教程下载,三星w23网页如何全屏?
名字制作网站免费,所有小说网站的名字?
常州自助建站工具推荐:低成本搭建与模板选择技巧
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
如何高效完成自助建站业务培训?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何在阿里云通过域名搭建网站?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
建站之星后台管理系统如何操作?
建站之星后台密码如何安全设置与找回?
外贸公司网站制作哪家好,maersk船公司官网?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何用免费手机建站系统零基础打造专业网站?
网站制作说明怎么写,简述网页设计的流程并说明原因?
宁波自助建站系统如何快速打造专业企业网站?
建站主机选哪家性价比最高?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
海南网站制作公司有哪些,海口网是哪家的?
太平洋网站制作公司,网络用语太平洋是什么意思?
如何快速搭建高效WAP手机网站吸引移动用户?
建站之星安装失败:服务器环境不兼容?
*请认真填写需求信息,我们会在24小时内与您取得联系。