JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest

栏目: JavaScript · 发布时间: 5年前

内容简介:原文作者:Chidume Nnamdi译者:UC 国际研发 Jothy写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。

原文作者:Chidume Nnamdi

译者:UC 国际研发 Jothy

写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。

Web 开发中客户端与服务器间的交互非常重要,它有利于客户端应用高度动态化。用户通过单击按钮的交互方式向服务器发送请求,服务器检索数据并返回,页面无需重新加载,直接使用返回的数据重新渲染其部分/整体内容,或者对数据进行操作。

这其中的技术原理是 AJAX,通过 XMLHttpRequest 实例实现。 为了提升 AJAX 及 XMLHttpRequest 的使用体验,社区开发了一些无需处理 AJAX 和 XMLHttpRequest 就直接发出 HTTP 请求的库。

本文将带你研究 5 个最流行的 HTTP 库,了解它们是如何实现的。 希望能帮你省下一些时间。

提示:通过与 Bit 共享同步公共组件可以避免代码重复。 把相同的功能的代码变成共享组件,就可以随处使用它了,构建更快哟~赶紧试试看。

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest Axios

基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js

Axios 是一个基于 Promise 的 HTTP 库,可用在 Node.js 和浏览器上发起 HTTP 请求,支持所有现代浏览器,甚至包括 IE8+!

优点

  • 同时支持 Node.js 和浏览器

  • 支持 Promise API

  • 可以配置或取消请求

  • 可以设置响应超时

  • 支持防止跨站点请求伪造(XSRF)攻击

  • 可以拦截未执行的请求或响应

  • 支持显示上传进度

  • 广泛用于 React 和 Vue 项目

缺点

  • 用起来比较麻烦

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest Superagent

改良版 Ajax——与 Node.js HTTP 客户端搭配使用

Superagent 是一个基于 Promise 的轻量级渐进式 AJAX API,非常适合发送 HTTP 请求以及接收服务器响应。 与 Axios 相同,它既适用于 Node,也适用于所有现代浏览器。

用 Superagent 发起 HTTP 请求就像在 request 对象上调用方法一样简单:

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest

优点

  • 它有一个插件生态,通过构建插件可以实现更多功能

  • 可配置

  • HTTP 请求发送接口友好

  • 可以为请求链式添加方法

  • 适用于浏览器和 Node

  • 支持显示上传和下载进度

  • 支持分块传输编码

  • 支持旧风格的回调

  • 繁荣的插件生态,支持众多常见功能

缺点

  • 其 API 不符合任何标准

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest Request

:swimmer|type_5: 简化版 HTTP 请求客户端

Request 提供了一种简化的 HTTP 请求方式。 你可以使用比其他 HTTP 库更少的代码来发起 HTTP 请求。 它不是基于 Promise 的,但如果你需要 Promise,你可以引入 request-promise 库,将请求封装为 Promise 并返回。

优点

  • API 简单易用

缺点

  • 不基于 Promise

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest Fetch

Fetch 是浏览器自带的用于发送请求的 API,旨在替代 XMLHttpRequest。

优点

  • 灵活易用

  • 使用 Promise 避免回调地狱

  • 支持所有现代浏览器

  • 遵循 request-response 方案

  • 语法简单清晰

  • 支持 React Native

缺点

  • 不支持服务器端使用

  • 缺乏开发库的亮点功能,比如取消请求

  • 没有内置默认值,如请求模式,请求头,请求凭据。

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest Supertest

Superagent 驱动,有一套流畅的 API 用于测试 Node.js HTTP 服务器

Supertest 用于测试 Node.js HTTP 服务器。 该库由 SuperAgent 提供支持,它把自身的 API 和 SuperAgent 的底层 API 相结合,提供简洁的 HTTP 测试接口。

优点

  • 流畅的 API

  • 简单的 HTTP 断言

  • 可以与 Chai.js 和 Mocha 等不同的测试套件混用

缺点

  • 不支持浏览器

JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest 总结

分析完热门 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


以上所述就是小编给大家介绍的《JS HTTP 请求库哪家强?Axios,Request,Superagent,Fetch 还是 Supertest》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

機器,平台,群眾

機器,平台,群眾

安德魯‧麥克費(Andrew McAfee)、艾瑞克‧布林優夫森(Erik Brynjolfsson) / 李芳齡 / 天下文化 / 2017-12-27 / TWD550

★★Amazon.com商業理財Top1 ★★ 全球暢銷書《第二次機器時代》作者最新力作 兩位MIT數位頂尖科學家歷時三年時間 走訪矽谷、華府、劍橋、紐約、倫敦、舊金山等科技政經重鎮 拜會許多領域精英進行交流,結合宏觀趨勢觀察, 指出人人都應關注的三重革命 科技正以空前速度改變每個產業及每個人的生活, 你該如何做,才能保持領先? 我們生活在一個奇特的......一起来看看 《機器,平台,群眾》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具