Node.js v17.5.0 发布,核心增加 Fetch API
Node.js v17.5.0 版本于本周四(2022-02-10)发布,布核其显著变化为:试验性支持 fetch() APIStream 新增了 find()、心增toArray()、布核forEach()、心增some()、布核every() 方法取消标记 esm json 模块NPM 更新至 8.4.1node-api 添加 node_api_symbol_for() 方法
fetch API 支持
Node.js 核心引入 fetch API 是心增一个令人兴奋的功能,目前在 v17.5.0 版本为试验性支持,布核在今后的心增 LTS 版本中如果正式支持了,就不需要在依赖第三方 HTTP 请求库了。布核

Fetch API 提供了 WHATWG 标准接口获取资源,心增这是布核一个基于 Promise 的 HTTP 客户端,可以用来简化 HTTP 请求,心增在浏览器环境已支持,布核浏览器环境的心增兼容性实现参考 Web/API/fetch,使用方式与浏览器中使用 Fetch API 一致。布核
Fetch API 主要包含以下四个接口:
fetch():该方法是最常用的IT技术网,用于发送请求。Headers:相当于 response/request 的头信息,可以使你查询到这些头信息,或者针对不同的结果做不同的操作。Request:相当于一个资源请求。Response:相当于请求的响应。一个简单的使用方式:
const response = await fetch(url);
console.log(response.ok);
console.log(await response.json());运行时需要加上 --experimental-fetch 标记,例如 node --experimental-fetch test.mjs。
Node.js 中的 fetch() 实现基于 undici,该项目位于 Node.js Github 项目组织下,其中的几位贡献者也是 Node.js 项目的贡献者,致力于为 Node.js 开发快速、网站模板可靠且符合规范的 HTTP 客户端,比内置的 HTTP 模块还要快,因为它摒弃了原有的 HTTP 模块,直接构建在 socket 之上,可参见笔者之前写的这篇文章request 已废弃 - 推荐一个超快的 Node.js HTTP Client undici。
Stream 模块
Node.js v17.5.0 Stream 模块增加了 find()、toArray()、forEach()、some()、every() 方法,这一块可 参考官网 API#stream 介绍。
下面以 some() 方法为例,如果有任何大文件就返回 true。
import { Readable } from stream;
import { stat } from fs/promises;
const anyBigFile = await Readable.from([
file1,
file2,
file3,
]).some(async (fileName) => {
const stats = await stat(fileName);
return stats.size > 1024 * 1024;
}, { concurrency: 2 });注意:奇数版本不是长期支持版本,Node.js 版本信息参考 Node.js 版本知多少?又该如何选择?。
Reference
https://fusebit.io/blog/node-fetch/
https://mp.weixin.qq.com/s/JXrInHyOk0HAAtA9-CbESw
https://nodejs.org/en/blog/release/v17.5.0/
高防服务器相关文章
电脑打印显示格式错误如何解决?(探讨常见电脑打印显示格式错误及其解决方法)
摘要:电脑打印是我们日常工作和生活中经常使用的功能之一,然而,有时我们可能会遇到电脑打印显示格式错误的问题,这不仅影响了打印效果,也浪费了时间和资源。本文将就常见的电脑打印显示格式错误进...2025-11-04
JavaScript的事件驱动范式增添了丰富的语言,也是让使用JavaScript编程变得更加多样化。如果将浏览器设想为JavaScript的事件驱动工具,那么当错误发生时,某个事件就会被抛出。理论上2025-11-04
什么是Hook,就是在一个已有的方法上加入一些钩子,使得在该方法执行前或执行后另在做一些额外的处理,那么Hook技巧有什么作用以及我们为什么需要使用它呢,事实上如果一个项目在设计架构时考虑的足够充分,2025-11-04
正如我们所知,DevOps最近几年很风靡,很多企业正在如火如荼的推行它。然而,你可曾想过,从传统到敏捷、再到DevOps,开发模式的不断革新对测试提出了怎样的挑战?最近我们项目在实施DevOps,因此2025-11-04用大白菜启动系统的方法与步骤(快速了解大白菜启动系统并实施启动)
摘要:随着科技的不断进步,各种创新的技术应运而生。其中,大白菜启动系统是一种独特的方式,可以帮助我们更快速、更高效地启动系统。本文将为您详细介绍大白菜启动系统的方法与步骤,帮助您轻松上手...2025-11-04
我用Python爬了22440条热门短评,告诉你网播60亿的《猎场》到底值不值得看?
11月6日,湖南卫视已经开播被称作年度***的大戏“猎场”,迅速占领各大榜单,成为一部高热度的电视剧,但是在豆瓣上却形成了两极分化。截止到11月26日,该剧在豆瓣上的评分为6.1分。相比较胡歌之前《琅2025-11-04

最新评论