关于fetch:Nodejs-支持-fetch-API

50次阅读

共计 818 个字符,预计需要花费 3 分钟才能阅读完成。

最新的 Node.js v17.5 引入了对 fetch API 的反对,对前端同学来说,十分相熟。

fetch() 是一种风行的跨平台 HTTP 客户端 API,可在浏览器和 Web/Service Workers 中运行。

尽管目前在 v17.5.0 版本为试验性反对,然而如果在今后的 LTS 版本中正式反对了,就不须要依赖第三方 HTTP 申请模块。

fetch API 提供了 WHATWG 标准接口获取资源,这是一个基于 Promise 的 HTTP 客户端,能够用来简化 HTTP 申请,在浏览器环境已反对,浏览器环境的兼容性实现参考 Web/API/fetch,应用形式与浏览器中应用 Fetch API 统一。

fetch API 次要蕴含以下四个接口:

  • fetch():该办法是最罕用的,用于发送申请。
  • Headers:相当于 response/request 的头信息,能够使你查问到这些头信息,或者针对不同的后果做不同的操作。
  • Request:相当于一个资源申请。
  • Response:相当于申请的响应。

为什么要应用?

在 Node.js 中应用 fetch() 的次要起因有两个:

  • Node.js 社区中有一场强烈的探讨,探讨如何以客户端开发者相熟的形式倒退 Node 的 HTTP 堆栈,同时又能与服务器编程模型配合,如何超过目前作为外围局部的 HTTP 模型的限度,以及如何反对 HTTP/2-3 而不适度减轻用户的累赘,而 fetch() 正是这一对话的第一步。
  • fetch() 实现基于 Undici,该我的项目位于 Node.js Github 我的项目组织下,其中的几位贡献者也是 Node.js 我的项目的贡献者,致力于为 Node.js 开发疾速、牢靠且符合规范的 HTTP 客户端,比内置的 HTTP 模块还要快,因为它摒弃了原有的 HTTP 模块,间接构建在 socket 之上。

如何应用?

目前 Node.js 17.5 中的 fetch() 是一项实验性的性能,运行脚本时须要须要增加 –experimental-fetch,即可在脚本内应用 fetch()。

正文完
 0