Node.js 最新版为什么要内置 fetch(),不用行吗?

目录
文章目录隐藏
  1. 什么是 fetch()?
  2. 为什么要使用?
  3. 如何启用?

Node.js 在最新版本中引入了 fetch(), fetch() 是一种流行的跨平台 HTTP 客户端 API,可在浏览器和 Web/Service Workers 中运行,目前在 v17.5.0 版本为试验性支持,也就是说,在今后的 LTS 版本中如果正式支持了,今后将不再需要额外的 HTTP 请求模块。

什么是 fetch()?

fetch() API 提供了一个 WHATWG 标准化接口来获取资源,它是一个基于 Promise 的 HTTP 客户端,支持许多高级 HTTP 功能,同时还专注于最常见的场景:发送简化的 HTTP 请求。

Fetch API 的核心包含四个接口:

  • fetch()– 用于发起请求的入口点
  • Headers 类- 处理 HTTP 请求/响应标头
  • Request 类 – 表示请求
  • Response 类 – 表示响应

把这些放在一起,这是一个简单的例子:

const res = await fetch('https://example/api/list');
const json = await res.json();
console.log(json);

标准化的好处在于,其使用方式与浏览器中使用 Fetch API 一致。

为什么要使用?

在 Node.js 中使用 fetch() 的主要原因有两个:

  • Node.js 社区中有一场激烈的讨论,讨论如何以客户端开发者熟悉的方式发展 Node 的 HTTP 堆栈,同时又能与服务器编程模型配合,如何超越目前作为核心部分的 HTTP 模型的限制,以及如何支持 HTTP/2-3 而不过度加重用户的负担,而 fetch() 正是这一对话的第一步
  • fetch() 实现基于 Undici,这是一个新的快速、可靠且符合规范的 HTTP/1.1 客户端,由于 Undici 摒弃了一些过时的 HTTP 原语并直接构建在 sockets 之上,因此与现有实现相比,fetch() 可以显著减少延迟和增加吞吐量

如何启用?

目前 Node.js 17.5 中的 fetch() 是一项实验性的功能,运行脚本时需要需要添加 --experimental-fetch,即可在脚本内使用 fetch()

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » Node.js 最新版为什么要内置 fetch(),不用行吗?

发表回复