您现在的位置是:亿华云 > 应用开发
Node.js v17.5.0 发布,核心增加 Fetch API
亿华云2025-10-09 14:00:15【应用开发】9人已围观
简介Node.js v17.5.0 版本于本周四(2022-02-10)发布,其显著变化为:试验性支持 fetch() APIStream 新增了 find()、toArray()、forEach()、s
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 主要包含以下四个接口:
一个简单的使用方式:
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/
站群服务器很赞哦!(1355)
相关文章
- 并非一个好米任何人都会给你一个好的价格。那你该如何用以有的好米卖出最理想的价格呢?
- Python性能优化的20条招数
- Javascript总结(常用工具类的封装)
- Google发布增强现实开发包ARCore 1.0:小米/华为首发
- 公司在注册域名时还需要确保邮箱的安全性。如果邮箱不安全,它只会受到攻击。攻击者可以直接在邮箱中重置密码并攻击用户。因此,有必要注意邮箱的安全性。
- “去IOE”激战9年:深度揭秘OceanBase如何异军突起
- 借助webpack对项目进行分析优化
- Python盗号原理-代码实现截屏键盘记录远程发送
- 2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
- 转型项目经理,鬼知道我经历了什么