JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest
栏目: JavaScript · 发布时间: 6年前
内容简介:原文作者:Chidume Nnamdi译者:UC 国际研发 Jothy写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。
原文作者:Chidume Nnamdi
译者:UC 国际研发 Jothy
写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。
Web 开发中客户端与服务器间的交互非常重要,它有利于客户端应用高度动态化。用户通过单击按钮的交互方式向服务器发送请求,服务器检索数据并返回,页面无需重新加载,直接使用返回的数据重新渲染其部分/整体内容,或者对数据进行操作。
这其中的技术原理是 AJAX,通过 XMLHttpRequest 实例实现。 为了提升 AJAX 及 XMLHttpRequest 的使用体验,社区开发了一些无需处理 AJAX 和 XMLHttpRequest 就直接发出 HTTP 请求的库。
本文将带你研究 5 个最流行的 HTTP 库,了解它们是如何实现的。 希望能帮你省下一些时间。
提示:通过与 Bit 共享同步公共组件可以避免代码重复。 把相同的功能的代码变成共享组件,就可以随处使用它了,构建更快哟~赶紧试试看。
Axios
基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js
Axios 是一个基于 Promise 的 HTTP 库,可用在 Node.js 和浏览器上发起 HTTP 请求,支持所有现代浏览器,甚至包括 IE8+!
优点
-
同时支持 Node.js 和浏览器
-
支持 Promise API
-
可以配置或取消请求
-
可以设置响应超时
-
支持防止跨站点请求伪造(XSRF)攻击
-
可以拦截未执行的请求或响应
-
支持显示上传进度
-
广泛用于 React 和 Vue 项目
缺点
-
用起来比较麻烦
Superagent
改良版 Ajax——与 Node.js HTTP 客户端搭配使用
Superagent 是一个基于 Promise 的轻量级渐进式 AJAX API,非常适合发送 HTTP 请求以及接收服务器响应。 与 Axios 相同,它既适用于 Node,也适用于所有现代浏览器。
用 Superagent 发起 HTTP 请求就像在 request 对象上调用方法一样简单:
优点
-
它有一个插件生态,通过构建插件可以实现更多功能
-
可配置
-
HTTP 请求发送接口友好
-
可以为请求链式添加方法
-
适用于浏览器和 Node
-
支持显示上传和下载进度
-
支持分块传输编码
-
支持旧风格的回调
-
繁荣的插件生态,支持众多常见功能
缺点
-
其 API 不符合任何标准
Request
:swimmer|type_5: 简化版 HTTP 请求客户端
Request 提供了一种简化的 HTTP 请求方式。 你可以使用比其他 HTTP 库更少的代码来发起 HTTP 请求。 它不是基于 Promise 的,但如果你需要 Promise,你可以引入 request-promise
库,将请求封装为 Promise 并返回。
优点
-
API 简单易用
缺点
-
不基于 Promise
Fetch
Fetch 是浏览器自带的用于发送请求的 API,旨在替代 XMLHttpRequest。
优点
-
灵活易用
-
使用 Promise 避免回调地狱
-
支持所有现代浏览器
-
遵循 request-response 方案
-
语法简单清晰
-
支持 React Native
缺点
-
不支持服务器端使用
-
缺乏开发库的亮点功能,比如取消请求
-
没有内置默认值,如请求模式,请求头,请求凭据。
Supertest
Superagent 驱动,有一套流畅的 API 用于测试 Node.js HTTP 服务器
Supertest 用于测试 Node.js HTTP 服务器。 该库由 SuperAgent 提供支持,它把自身的 API 和 SuperAgent 的底层 API 相结合,提供简洁的 HTTP 测试接口。
优点
-
流畅的 API
-
简单的 HTTP 断言
-
可以与 Chai.js 和 Mocha 等不同的测试套件混用
缺点
-
不支持浏览器
总结
分析完热门 HTTP 库,你可能会问“我应该选择哪一个?”
我想说,选择哪个库取决于你的项目、规模和目标用户,每个选择都有好有坏。 如果你为误判规格选择了错误的库,那就得考虑下这个问题,重新选择合适的工具。
如果你有任何疑问或觉得有需要补充、更正或删除的,任何疑问都请随时发表评论,发邮件或直接私信我。 谢谢阅读!:clap:
原文地址:https://blog.bitsrc.io/comparing-http-request-libraries-for-2019-7bedb1089c83?gi=89b097d4bfd1
好文推荐:
JavaScript 极致性能追求:TC39 二进制 AST 提案
“UC国际技术”致力于与你共享高质量的技术文章
欢迎关注我们的公众号、将文章分享给你的好友
以上所述就是小编给大家介绍的《JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Pro JavaScript Techniques
John Resig / Apress / 2006-12-13 / USD 44.99
Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web s......一起来看看 《Pro JavaScript Techniques》 这本书的介绍吧!