全域性物件#

穩定性:2 - 穩定

這些物件在所有模組中都可用。

以下變數可能看起來是全域性的,但實際上不是。它們只存在於CommonJS 模組的作用域中

這裡列出的物件是 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#

abortController.abort() 方法被呼叫時,AbortSignal 用於通知觀察者。

靜態方法:AbortSignal.abort([reason])#

返回一個新的、已經中止的 AbortSignal

靜態方法:AbortSignal.timeout(delay)#
  • delay <number> 觸發 AbortSignal 前等待的毫秒數。

返回一個新的 AbortSignal,它將在 delay 毫秒後被中止。

靜態方法:AbortSignal.any(signals)#
  • signals <AbortSignal[]> 用來組合成新 AbortSignalAbortSignal 陣列。

返回一個新的 AbortSignal,如果提供的任何一個訊號被中止,它也將被中止。它的 abortSignal.reason 將被設定為導致它中止的那個 signals 的原因。

事件:'abort'#

abortController.abort() 方法被呼叫時,會發出 'abort' 事件。回撥函式被呼叫時會傳入一個物件引數,該物件只有一個 type 屬性,其值設定為 'abort'

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 被中止後為 True。
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 章節

類:ByteLengthQueuingStrategy#

一個與瀏覽器相容的 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定時器 章節中描述。

類:CloseEvent#

一個與瀏覽器相容的 <CloseEvent> 實現。使用 --no-experimental-websocket CLI 標誌停用此 API。

類:CompressionStream#

一個與瀏覽器相容的 CompressionStream 實現。

console#

用於列印到標準輸出(stdout)和標準錯誤(stderr)。參見 console 章節。

類:CountQueuingStrategy#

一個與瀏覽器相容的 CountQueuingStrategy 實現。

類:Crypto#

一個與瀏覽器相容的 <Crypto> 實現。只有當 Node.js 二進位制檔案編譯時包含了對 node:crypto 模組的支援,此全域性變數才可用。

crypto#

一個與瀏覽器相容的 Web Crypto API 實現。

類:CryptoKey#

一個與瀏覽器相容的 <CryptoKey> 實現。只有當 Node.js 二進位制檔案編譯時包含了對 node:crypto 模組的支援,此全域性變數才可用。

類:CustomEvent#

一個與瀏覽器相容的 <CustomEvent> 實現。

類:DecompressionStream#

一個與瀏覽器相容的 DecompressionStream 實現。

ErrorEvent#

一個與瀏覽器相容的 <ErrorEvent> 實現。

類:Event#

一個與瀏覽器相容的 Event 類實現。更多詳情請參見 EventTargetEvent API

類:EventSource#

穩定性:1 - 實驗性。使用 --experimental-eventsource CLI 標誌啟用此 API。

一個與瀏覽器相容的 <EventSource> 實現。

類:EventTarget#

一個與瀏覽器相容的 EventTarget 類實現。更多詳情請參見 EventTargetEvent API

exports#

此變數可能看起來是全域性的,但實際上不是。參見 exports

fetch#

一個與瀏覽器相容的 fetch() 函式實現。

const res = await fetch('https://nodejs.com.tw/api/documentation.json');
if (res.ok) {
  const data = await res.json();
  console.log(data);
} 

該實現基於 undici,這是一個為 Node.js 從頭編寫的 HTTP/1.1 客戶端。您可以透過讀取 process.versions.undici 屬性來確定您的 Node.js 程序中捆綁的 undici 版本。

自定義排程器#

您可以透過在 fetch 的選項物件中傳遞一個自定義排程器來分派請求。該排程器必須與 undiciDispatcher 相容。

fetch(url, { dispatcher: new MyAgent() }); 

可以透過安裝 undici 並使用 setGlobalDispatcher() 方法來更改 Node.js 中的全域性排程器。呼叫此方法將同時影響 undici 和 Node.js。

import { setGlobalDispatcher } from 'undici';
setGlobalDispatcher(new MyAgent()); 

相關類#

以下全域性變數可與 fetch 一起使用

類:File#

參見 <File>

類:FormData#

一個與瀏覽器相容的 <FormData> 實現。

global#

穩定性:3 - 遺留。請改用 globalThis

  • 型別:<Object> 全域性名稱空間物件。

在瀏覽器中,頂層作用域傳統上就是全域性作用域。這意味著 var something 會定義一個新的全域性變數,除非在 ECMAScript 模組中。在 Node.js 中,情況有所不同。頂層作用域不是全域性作用域;在 Node.js 模組中,var something 將是該模組的區域性變數,無論它是 CommonJS 模組 還是 ECMAScript 模組

類:Headers#

一個與瀏覽器相容的 <Headers> 實現。

localStorage#

一個與瀏覽器相容的 localStorage 實現。資料以未加密的形式儲存在由 --localstorage-file CLI 標誌指定的檔案中。可儲存的最大資料量為 10 MB。不支援在 Web Storage API 之外對此資料進行任何修改。使用 --no-webstorage(或其別名 --no-experimental-webstorage)CLI 標誌停用此 API。在伺服器上下文中使用時,localStorage 資料不是按使用者或請求儲存的,它在所有使用者和請求之間共享。

類:MessageChannel#

MessageChannel 類。更多詳情請參見 MessageChannel

類:MessageEvent#

一個與瀏覽器相容的 <MessageEvent> 實現。

類:MessagePort#

MessagePort 類。更多詳情請參見 MessagePort

module#

此變數可能看起來是全域性的,但實際上不是。參見 module

類:Navigator#

穩定性:1.1 - 積極開發中。使用 --no-experimental-global-navigator CLI 標誌停用此 API。

Navigator API 的部分實現。

navigator#

穩定性:1.1 - 積極開發中。使用 --no-experimental-global-navigator CLI 標誌停用此 API。

window.navigator 的部分實現。

navigator.hardwareConcurrency#

navigator.hardwareConcurrency 只讀屬性返回當前 Node.js 例項可用的邏輯處理器數量。

console.log(`This process is running on ${navigator.hardwareConcurrency} logical processors`); 

navigator.language#

navigator.language 只讀屬性返回一個字串,表示 Node.js 例項的首選語言。該語言將由 Node.js 在執行時使用的 ICU 庫根據作業系統的預設語言來確定。

該值表示 RFC 5646 中定義的語言版本。

在沒有 ICU 的構建版本中,回退值為 'en-US'

console.log(`The preferred language of the Node.js instance has the tag '${navigator.language}'`); 

navigator.languages#

  • 型別:{Array}

navigator.languages 只讀屬性返回一個字串陣列,表示 Node.js 例項的首選語言。預設情況下,navigator.languages 僅包含 navigator.language 的值,該值將由 Node.js 在執行時使用的 ICU 庫根據作業系統的預設語言來確定。

在沒有 ICU 的構建版本中,回退值為 ['en-US']

console.log(`The preferred languages are '${navigator.languages}'`); 

navigator.platform#

navigator.platform 只讀屬性返回一個字串,標識 Node.js 例項執行的平臺。

console.log(`This process is running on ${navigator.platform}`); 

navigator.userAgent#

navigator.userAgent 只讀屬性返回使用者代理字串,由執行時名稱和主版本號組成。

console.log(`The user-agent is ${navigator.userAgent}`); // Prints "Node.js/21" 

navigator.locks#

穩定性:1 - 實驗性

navigator.locks 只讀屬性返回一個 LockManager 例項,可用於協調對同一程序內多個執行緒可能共享的資源的訪問。此全域性實現與瀏覽器 LockManager API 的語義相匹配。

// Request an exclusive lock
await navigator.locks.request('my_resource', async (lock) => {
  // The lock has been acquired.
  console.log(`Lock acquired: ${lock.name}`);
  // Lock is automatically released when the function returns
});

// Request a shared lock
await navigator.locks.request('shared_resource', { mode: 'shared' }, async (lock) => {
  // Multiple shared locks can be held simultaneously
  console.log(`Shared lock acquired: ${lock.name}`);
});// Request an exclusive lock
navigator.locks.request('my_resource', async (lock) => {
  // The lock has been acquired.
  console.log(`Lock acquired: ${lock.name}`);
  // Lock is automatically released when the function returns
}).then(() => {
  console.log('Lock released');
});

// Request a shared lock
navigator.locks.request('shared_resource', { mode: 'shared' }, async (lock) => {
  // Multiple shared locks can be held simultaneously
  console.log(`Shared lock acquired: ${lock.name}`);
}).then(() => {
  console.log('Shared lock released');
});

詳細的 API 文件請參見 worker_threads.locks

類:PerformanceEntry#

PerformanceEntry 類。更多詳情請參見 PerformanceEntry

類:PerformanceMark#

PerformanceMark 類。更多詳情請參見 PerformanceMark

類:PerformanceMeasure#

PerformanceMeasure 類。更多詳情請參見 PerformanceMeasure

類:PerformanceObserver#

PerformanceObserver 類。更多詳情請參見 PerformanceObserver

類:PerformanceObserverEntryList#

PerformanceObserverEntryList 類。更多詳情請參見 PerformanceObserverEntryList

類:PerformanceResourceTiming#

PerformanceResourceTiming 類。更多詳情請參見 PerformanceResourceTiming

performance#

perf_hooks.performance 物件。

process#

process 物件。參見 process 物件 章節。

queueMicrotask(callback)#

queueMicrotask() 方法將一個微任務排隊以呼叫 callback。如果 callback 丟擲異常,process 物件'uncaughtException' 事件將被觸發。

微任務佇列由 V8 管理,其使用方式與由 Node.js 管理的 process.nextTick() 佇列類似。在 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#

一個與瀏覽器相容的 ReadableByteStreamController 實現。

類:ReadableStream#

一個與瀏覽器相容的 ReadableStream 實現。

類:ReadableStreamBYOBReader#

一個與瀏覽器相容的 ReadableStreamBYOBReader 實現。

類:ReadableStreamBYOBRequest#

一個與瀏覽器相容的 ReadableStreamBYOBRequest 實現。

類:ReadableStreamDefaultController#

一個與瀏覽器相容的 ReadableStreamDefaultController 實現。

類:ReadableStreamDefaultReader#

一個與瀏覽器相容的 ReadableStreamDefaultReader 實現。

require()#

此變數可能看起來是全域性的,但實際上不是。參見 require()

類:Response#

一個與瀏覽器相容的 <Response> 實現。

類:Request#

一個與瀏覽器相容的 <Request> 實現。

sessionStorage#

穩定性:1.0 - 早期開發。

一個與瀏覽器相容的 sessionStorage 實現。資料儲存在記憶體中,儲存配額為 10 MB。sessionStorage 資料僅在當前執行的程序中持久存在,並且不在工作執行緒之間共享。

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

setImmediate定時器 章節中描述。

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

setInterval定時器 章節中描述。

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

setTimeout定時器 章節中描述。

類:Storage#

穩定性:1.0 - 早期開發。使用 [--experimental-webstorage][] CLI 標誌啟用此 API。

一個與瀏覽器相容的 <Storage> 實現。使用 --no-webstorage(或其別名 --no-experimental-webstorage)CLI 標誌停用此 API。

structuredClone(value[, options])#

WHATWG 的 structuredClone 方法。

類:SubtleCrypto#

一個與瀏覽器相容的 <SubtleCrypto> 實現。只有當 Node.js 二進位制檔案編譯時包含了對 node:crypto 模組的支援,此全域性變數才可用。

類:DOMException#

WHATWG 的 <DOMException> 類。

類:TextDecoder#

WHATWG 的 TextDecoder 類。參見 TextDecoder 章節。

類:TextDecoderStream#

一個與瀏覽器相容的 TextDecoderStream 實現。

類:TextEncoder#

WHATWG 的 TextEncoder 類。參見 TextEncoder 章節。

類:TextEncoderStream#

一個與瀏覽器相容的 TextEncoderStream 實現。

類:TransformStream#

一個與瀏覽器相容的 TransformStream 實現。

類:TransformStreamDefaultController#

一個與瀏覽器相容的 TransformStreamDefaultController 實現。

類:URL#

WHATWG 的 URL 類。參見 URL 章節。

類:URLPattern#

穩定性:1 - 實驗性

WHATWG 的 URLPattern 類。參見 URLPattern 章節。

類:URLSearchParams#

WHATWG 的 URLSearchParams 類。參見 URLSearchParams 章節。

類:WebAssembly#

作為所有 W3C WebAssembly 相關功能名稱空間的物件。用法和相容性請參見 Mozilla 開發者網路

類:WebSocket#

一個與瀏覽器相容的 <WebSocket> 實現。使用 --no-experimental-websocket CLI 標誌停用此 API。

類:WritableStream#

一個與瀏覽器相容的 WritableStream 實現。

類:WritableStreamDefaultController#

一個與瀏覽器相容的 WritableStreamDefaultController 實現。

類:WritableStreamDefaultWriter#

一個與瀏覽器相容的 WritableStreamDefaultWriter 實現。