Node.js v18.16.0 文档


目录

全局对象#

这些对象在所有模块中都可用。 以下变量可能看起来是全局的,但实际上不是。 它们只存在于模块范围内,见 模块系统文档

此处列出的对象特定于 Node.js。 内置对象 是 JavaScript 语言本身的一部分,也是全局可访问的。

类:AbortController#

用于在选定的基于 Promise 的 API 中触发取消信号的实用工具类。 该 API 基于 Web API AbortController

const ac = new AbortController();

ac.signal.addEventListener('abort', () => console.log('Aborted!'),
                           { once: true });

ac.abort();

console.log(ac.signal.aborted);  // Prints True 

abortController.abort([reason])#

  • reason <any> 可选的原因,可在 AbortSignalreason 属性中检索。

触发中止信号,使 abortController.signal 触发 'abort' 事件。

abortController.signal#

类:AbortSignal#

AbortSignal 用于在调用 abortController.abort() 方法时通知观察者。

静态方法:AbortSignal.abort([reason])#

返回新的已中止的 AbortSignal

静态方法:AbortSignal.timeout(delay)#
  • delay <number> 触发 AbortSignal 之前等待的毫秒数。

返回新的 AbortSignal,其将在 delay 毫秒内中止。

事件:'abort'#

当调用 abortController.abort() 方法时,则触发 'abort' 事件。 使用单个对象参数调用回调,该对象具有被设置为 'abort'type 属性:

const ac = new AbortController();

// Use either the onabort property...
ac.signal.onabort = () => console.log('aborted!');

// Or the EventTarget API...
ac.signal.addEventListener('abort', (event) => {
  console.log(event.type);  // Prints 'abort'
}, { once: true });

ac.abort(); 

AbortSignal 关联的 AbortController 只会触发一次 'abort' 事件。 建议在添加 'abort' 事件监听器之前代码检查 abortSignal.aborted 属性是否为 false

任何绑定到 AbortSignal 的事件监听器都应使用 { once: true } 选项(或者,如果使用 EventEmitter API 绑定监听器,则使用 once() 方法)以确保在处理 'abort' 事件后立即删除事件监听器。 不这样做可能会导致内存泄漏。

abortSignal.aborted#
  • 类型: <boolean> 中止 AbortController 后为真。

abortSignal.onabort#

可选的回调函数,可以由用户代码设置,以便当调用 abortController.abort() 函数时得到通知。

abortSignal.reason#

当触发 AbortSignal 时指定的可选的原因。

const ac = new AbortController();
ac.abort(new Error('boom!'));
console.log(ac.signal.reason);  // Error('boom!'); 

abortSignal.throwIfAborted()#

如果 abortSignal.abortedtrue,则抛出 abortSignal.reason

类:Blob#

参见 <Blob>

类:Buffer#

用于处理二进制数据。 参见 buffer section

类:ByteLengthQueuingStrategy#

稳定性: 1 - 实验。

ByteLengthQueuingStrategy 的浏览器兼容实现。

__dirname#

此变量可能看起来是全局的,但实际上不是。 参见 __dirname

__filename#

此变量可能看起来是全局的,但实际上不是。 参见 __filename

atob(data)#

稳定性: 3 - 旧版。 改用 Buffer.from(data, 'base64')

buffer.atob() 的全局别名。

BroadcastChannel#

参见 <BroadcastChannel>

btoa(data)#

稳定性: 3 - 旧版。 改用 buf.toString('base64')

buffer.btoa() 的全局别名。

clearImmediate(immediateObject)#

clearImmediate定时器 部分中描述。

clearInterval(intervalObject)#

clearInterval定时器 部分中描述。

clearTimeout(timeoutObject)#

clearTimeout定时器 部分中描述。

类:CompressionStream#

稳定性: 1 - 实验。

CompressionStream 的浏览器兼容实现。

console#

用于打印到标准输出和标准错误。 参阅 console 章节。

类:CountQueuingStrategy#

稳定性: 1 - 实验。

CountQueuingStrategy 的浏览器兼容实现。

Crypto#

稳定性: 1 - 实验。 使用 --experimental-global-webcrypto CLI 标志启用此 API。

<Crypto> 的浏览器兼容实现。 只有在编译 Node.js 二进制文件时包含对 node:crypto 模块的支持,此全局才可用。

crypto#

稳定性: 1 - 实验。 使用 --experimental-global-webcrypto CLI 标志启用此 API。

网络加密 API 的浏览器兼容实现。

CryptoKey#

稳定性: 1 - 实验。 使用 --experimental-global-webcrypto CLI 标志启用此 API。

<CryptoKey> 的浏览器兼容实现。 只有在编译 Node.js 二进制文件时包含对 node:crypto 模块的支持,此全局才可用。

CustomEvent#

稳定性: 1 - 实验。 使用 --experimental-global-customevent CLI 标志启用此 API。

CustomEvent 网络 API 的浏览器兼容实现。

类:DecompressionStream#

稳定性: 1 - 实验。

DecompressionStream 的浏览器兼容实现。

Event#

Event 类的浏览器兼容的实现。 有关详细信息,请参阅 EventTargetEvent API

EventTarget#

EventTarget 类的浏览器兼容的实现。 有关详细信息,请参阅 EventTargetEvent API

exports#

此变量可能看起来是全局的,但实际上不是。 参见 exports

fetch#

稳定性: 1 - 实验。 使用 --no-experimental-fetch CLI 标志禁用此 API。

fetch() 函数的浏览器兼容实现。

FormData#

稳定性: 1 - 实验。 使用 --no-experimental-fetch CLI 标志禁用此 API。

<FormData> 的浏览器兼容实现。

global#

  • <Object> 全局的命名空间对象。

在浏览器中,顶层的作用域是全局作用域。 这意味着在浏览器中,var something 将定义新的全局变量。 在 Node.js 中这是不同的。 顶层作用域不是全局作用域; Node.js 模块内的 var something 将是该模块的本地。

Headers#

稳定性: 1 - 实验。 使用 --no-experimental-fetch CLI 标志禁用此 API。

<Headers> 的浏览器兼容实现。

MessageChannel#

MessageChannel 类。 有关详细信息,请参阅 MessageChannel

MessageEvent#

MessageEvent 类。 有关详细信息,请参阅 MessageEvent

MessagePort#

MessagePort 类。 有关详细信息,请参阅 MessagePort

module#

此变量可能看起来是全局的,但实际上不是。 参见 module

performance#

perf_hooks.performance 对象。

process#

进程对象。 参阅 process 对象 章节。

queueMicrotask(callback)#

queueMicrotask() 方法将微任务排队以调用 callback。 如果 callback 抛出异常,将触发 process 对象 'uncaughtException' 事件。

微任务队列由 V8 管理,并且可以以类似于 process.nextTick() 队列的方式使用,后者由 Node.js 管理。 在 Node.js 事件循环的每次轮询中,process.nextTick() 队列总是在微任务队列之前处理。

// Here, `queueMicrotask()` is used to ensure the 'load' event is always
// emitted asynchronously, and therefore consistently. Using
// `process.nextTick()` here would result in the 'load' event always emitting
// before any other promise jobs.

DataHandler.prototype.load = async function load(key) {
  const hit = this._cache.get(key);
  if (hit !== undefined) {
    queueMicrotask(() => {
      this.emit('load', hit);
    });
    return;
  }

  const data = await fetchData(key);
  this._cache.set(key, data);
  this.emit('load', data);
}; 

类:ReadableByteStreamController#

稳定性: 1 - 实验。

ReadableByteStreamController 的浏览器兼容实现。

类:ReadableStream#

稳定性: 1 - 实验。

ReadableStream 的浏览器兼容实现。

类:ReadableStreamBYOBReader#

稳定性: 1 - 实验。

ReadableStreamBYOBReader 的浏览器兼容实现。

类:ReadableStreamBYOBRequest#

稳定性: 1 - 实验。

ReadableStreamBYOBRequest 的浏览器兼容实现。

类:ReadableStreamDefaultController#

稳定性: 1 - 实验。

ReadableStreamDefaultController 的浏览器兼容实现。

类:ReadableStreamDefaultReader#

稳定性: 1 - 实验。

ReadableStreamDefaultReader 的浏览器兼容实现。

require()#

此变量可能看起来是全局的,但实际上不是。 参见 require()

Response#

稳定性: 1 - 实验。 使用 --no-experimental-fetch CLI 标志禁用此 API。

<Response> 的浏览器兼容实现。

Request#

稳定性: 1 - 实验。 使用 --no-experimental-fetch CLI 标志禁用此 API。

<Request> 的浏览器兼容实现。

setImmediate(callback[, ...args])#

setImmediate定时器 部分中描述。

setInterval(callback, delay[, ...args])#

setInterval定时器 部分中描述。

setTimeout(callback, delay[, ...args])#

setTimeout定时器 部分中描述。

structuredClone(value[, options])#

WHATWG structuredClone 方法。

SubtleCrypto#

稳定性: 1 - 实验。 使用 --experimental-global-webcrypto CLI 标志启用此 API。

<SubtleCrypto> 的浏览器兼容实现。 只有在编译 Node.js 二进制文件时包含对 node:crypto 模块的支持,此全局才可用。

DOMException#

WHATWG DOMException 类。 有关详细信息,请参阅 DOMException

TextDecoder#

WHATWG TextDecoder 类。 参阅 TextDecoder 章节。

类:TextDecoderStream#

稳定性: 1 - 实验。

TextDecoderStream 的浏览器兼容实现。

TextEncoder#

WHATWG TextEncoder 类。 参阅 TextEncoder 章节。

类:TextEncoderStream#

稳定性: 1 - 实验。

TextEncoderStream 的浏览器兼容实现。

类:TransformStream#

稳定性: 1 - 实验。

TransformStream 的浏览器兼容实现。

类:TransformStreamDefaultController#

稳定性: 1 - 实验。

TransformStreamDefaultController 的浏览器兼容实现。

URL#

WHATWG URL 类。 参阅 URL 章节。

URLSearchParams#

WHATWG URLSearchParams 类。 参阅 URLSearchParams 章节。

WebAssembly#

充当所有 W3C WebAssembly 相关功能的名称空间的对象。 有关用法和兼容性,请参阅 Mozilla 开发者网络

类:WritableStream#

稳定性: 1 - 实验。

WritableStream 的浏览器兼容实现。

类:WritableStreamDefaultController#

稳定性: 1 - 实验。

WritableStreamDefaultController 的浏览器兼容实现。

类:WritableStreamDefaultWriter#

稳定性: 1 - 实验。

WritableStreamDefaultWriter 的浏览器兼容实现。