2.3. 技术预览功能


在 Node.js 16 LTS 版本中,以下功能可作为技术预览功能提供。

2.3.1. Web Crypto API

Web Crypto API 是标准 W3C Web Cryptography API 的实现。Web Crypto API 可通过使用 require ('crypto').webcrypto 语句来访问。例如:

const { subtle } = require('crypto').webcrypto;

(async function() {

  const key = await subtle.generateKey({
    name: 'HMAC',
    hash: 'SHA-256',
    length: 256
  }, true, ['sign', 'verify']);

  const digest = await subtle.sign({
    name: 'HMAC'
  }, key, 'I love cupcakes');

})();
Copy to Clipboard Toggle word wrap

2.3.2. Web Streams API

Web Streams API 是 WHATWG 流标准用于处理流数据的实现。由于是实验性的,因此此发行版本中的全局对象不会公开 Web Streams API。Web Streams API 只能通过新的 stream/web 核心模块访问。例如:

import { ReadableStream, WritableStream } from 'stream/web';
// Or from 'node:stream/web'
Copy to Clipboard Toggle word wrap

2.3.3. ESM Loader Hooks API

ESM Loader Hooks API 整合 ECMAScript 模块(ESM)加载程序 hook,以表示未来加载程序链所需的步骤:

  1. 解决方案 :解析 [+ getFormat]
  2. load: getFormat + getSource + convertSource

为实现一致性,getGlobalPreloadCode loader hook 已重命名为 globalPreload

导出一个或多个过时的 hook 的任何加载程序都会触发单个弃用警告,该警告列出了错误 hook。

2.3.4. 在 worker 线程间共享原始数据的新类

Blob 类封装了可在多个 worker 线程间安全共享的不可变原始数据。

blob缓冲区 类的子类。

2.3.5. test Runner 模块

node:test 模块有助于创建以 Test anything Protocol (TAP)格式报告结果的 JavaScript 测试。

要导入测试运行程序模块,请使用以下语法:

import test from 'node:test';
Copy to Clipboard Toggle word wrap
注意

导入测试运行程序模块时,您必须指定 node: 前缀,如上例所示。node: 前缀表示载入核心模块。如果省略了 node: 前缀,Node.js 会尝试从 Node.js 模块的"userland"生态系统导入测试模块,而不是从 Node.js 内核导入 test runner 模块。

以下代码显示了一个带有两个子tests 的父测试的示例实现:

test('top level test', async (t) => {
  await t.test('subtest 1', (t) => {
    assert.strictEqual(1, 1);
  });

  await t.test('subtest 2', (t) => {
    assert.strictEqual(2, 2);
  });
});
Copy to Clipboard Toggle word wrap

如需更多信息,请参阅 Node.js Test Runner 文档

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat