Node.js v20.4.0 发布


Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境。Node.js 由 Node.js Foundation(已与 JS Foundation 合并为 OpenJS Foundation)持有和维护,亦为 Linux 基金会的项目。Node.js 采用 Google 开发的 V8 运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于资料密集的即时应用程序。

Node.js v20.4.0 现已发布,本次更新内容如下:

Mock Timers

新功能允许开发人员为时间相关的功能编写更可靠和可预测的测试。它包括MockTimers,能够模拟setTimeout,来自globalsnode:timersnode:timers/promisessetInterval

该功能提供了一个简单的 API 来推进时时间、启用特定计时器以及释放所有计时器。

import assert from 'node:assert';
import { test } from 'node:test';

test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => {
const fn = context.mock.fn();
// Optionally choose what to mock
context.mock.timers.enable(['setTimeout']);
const nineSecs = 9000;
setTimeout(fn, nineSecs);

const threeSeconds = 3000;
context.mock.timers.tick(threeSeconds);
context.mock.timers.tick(threeSeconds);
context.mock.timers.tick(threeSeconds);

assert.strictEqual(fn.mock.callCount(), 1);
});

#47775

支持显式资源管理提案

Node 正在为其资源添加对显式资源管理提案的支持。#48518

其他显着变化

  • [fe333d2584] - crypto:将根证书更新到 NSS 3.90 (Node.js GitHub Bot) #48416
  • [60c2ea4e79] - doc : 将 vmoroz 添加到协作者 (Vladimir Morozov) #48527
  • [5cacdf9e6b] - doc : 将 kvakil 添加到协作者 (Keyhan Vakil) #48449
  • [504d1d7bdc] - (SEMVER-MINOR) tls : 为动态 ALPN 协商添加 ALPNCallback 服务器选项 (Tim Perry) #45190

更多详情可查看:https://nodejs.org/en/blog/release/v20.4.0


相關推薦

2023-12-05

Node.js v18.19.0 已发布,代号 'Hydrogen'。Node v18.19.0 是一个长期支持版本 (LTS),这意味着它将获得更长的支持和维护。LTS 版本通常更加稳定和可靠,适合用于生产环境。 主要变化 将 npm 升级到 v10 在 Node.js 20 中经过两个月的试

2023-11-24

Node.js v20.10.0 已正式发布,代号 'Iron'。根据发布时间表,由于上月 Node.js 21 已正式发布,因此 Node.js 20 就变成了长期支持版本 (LTS)。 新版本主要变化 引入新的--experimental-default-typeflag,用于改变 Node.js 的默认 module 通

2023-08-11

Node.js 为多个分支发布了更新,分别是:v16.20.2 (LTS)、v16.20.2 (LTS) 和 v20.5.1 (Current)。 根据发布公告,此次更新主要是修复安全漏洞。 CVE-2023-32002:可以通过 Module._load 绕过策略(高危) CVE-2023-32006:可以通过 module.cons

2023-06-22

常用于资料密集的即时应用程序。 Node.js v20.3.1 现已发布,本次更新内容如下: Notable Changes 此版本中修复了以下 CVE: CVE-2023-30581:mainModule.__proto__绕过实验性策略机制(高) CVE-2023-30584:实验权限模型中的路径遍历旁

2023-06-13

常用于资料密集的即时应用程序。 Node.js v20.3.0 现已发布,本次更新内容如下: Notable Changes [ bfcb3d1d9a] - deps:升级到 libuv 1.45.0,包括对 Linux 上文件系统操作的显着性能改进 #48078 [ 5094d1b292] - doc:将 R

2022-10-19

Node.js 19 在今天正式发布了,此次更新包括将 V8 JavaScript 引擎更新到 10.7,以及默认启用 HTTP(s)/1.1 KeepAlive。 Node.js 18 在本月晚些时候将进入长期支持(LTS),Node.js 19 将取代 Node.js 18 成为 "Current" 版本。 node --watch(实验性) 运

2022-11-16

Node.js v19.1.0 现已发布,此版本一些更新内容包括: Notable changes 支持 Node.js 测试运行器上的 function mocking #45326 node:test 模块在测试过程中通过顶层的 mock object 支持 mocking。 test('spies on an object method', (t) => { const number =

2023-01-09

常用于资料密集的即时应用程序。 Node.js v19.4.0 现已发布,本次更新内容如下: Notable Changes buffe: (SEMVER-MINOR) 为 utf8 验证添加 buffer.isUtf8 (Yagiz Nizipli) #45947 http: (SEMVER-MINOR) 改进了超时默认处理(Paol

2023-10-27

titbit v23.3.0 已经发布,Node.js 环境的 Web 后端框架 此版本更新内容包括: bodyparser.js 升级body解析方式。 其他一些细节更新。 详情查看:https://gitee.com/daoio/titbit/releases/v23.3.0

2023-10-31

titbit v23.3.5 已经发布,Node.js 环境的 Web 后端框架 此版本更新内容包括: bodyparser.js 解析multipart/form-data格式的数据去掉了split方式,改为跳跃式,提高了性能和安全性。并限制消息头数量,对超过最大消息头长度的文件不

2023-11-02

titbit v23.4.0 已经发布,Node.js 环境的 Web 后端框架 此版本更新内容包括: 升级body 解析方式 调整中间件执行过程,小范围优化 添加getService方法 优化升级helper模块助手函数 详情查看:https://gitee.com/daoio/titbit/releases/v23.4

2023-11-06

titbit v23.4.2 已经发布,Node.js 环境的 Web 后端框架 此版本更新内容包括: 小范围优化调整代码结构。 默认errorHandle忽略ERR_HTTP_REQUEST_TIMEOUT 详情查看:https://gitee.com/daoio/titbit/releases/v23.4.2

2022-10-18

Node.js 发布了两个更新,分别是 v16.18.0 (LTS) &  v18.11.0。 Node v16.18.0 (LTS) 主要变化 [1cc050eaa8] - (SEMVER-MINOR) assert: 添加getCalls和reset到 callTracker #44191 [e5c9975f11] - (SEMVER-MINOR) crypto: 允许 zero-length secret KeyObje

2023-04-12

Node.js v19.9.0 已发布。 值得关注的变化: diagnostic_channel 中的 Tracing Channel TracingChannel添加了一个新的高性能通道,来发布有关函数执行的时间和目的的跟踪数据。#44943 新的 URL.canParse API 一个新的 API 添加到 URL。URL.canParse检查