グローバルオブジェクト#

安定性: 2 - Stable

これらのオブジェクトはすべてのモジュールで利用可能です。

以下の変数はグローバルに見えるかもしれませんが、そうではありません。これらは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#

AbortSignalabortController.abort() メソッドが呼ばれたときにオブザーバーに通知するために使用されます。

静的メソッド: AbortSignal.abort([reason])#

すでに中断された新しい AbortSignal を返します。

静的メソッド: AbortSignal.timeout(delay)#
  • delay <number> AbortSignal をトリガーする前に待機するミリ秒数。

delay ミリ秒後に中断される新しい AbortSignal を返します。

静的メソッド: AbortSignal.any(signals)#
  • signals <AbortSignal[]> 新しい AbortSignal を構成するための AbortSignal の配列。

提供されたいずれかのシグナルが中断された場合に中断される新しい AbortSignal を返します。その abortSignal.reason は、中断の原因となった signals のいずれかの理由に設定されます。

イベント: 'abort'#

'abort' イベントは abortController.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> のブラウザ互換実装です。この API は --no-experimental-websocket CLI フラグで無効にできます。

クラス: CompressionStream#

CompressionStream のブラウザ互換実装です。

console#

標準出力および標準エラー出力に表示するために使用されます。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 - 実験的。この API を有効にするには --experimental-eventsource CLI フラグを使用してください。

<EventSource> のブラウザ互換実装です。

クラス: EventTarget#

EventTarget クラスのブラウザ互換実装です。詳細は EventTargetEvent API を参照してください。

exports#

この変数はグローバルに見えるかもしれませんが、そうではありません。exports を参照してください。

fetch#

fetch() 関数のブラウザ互換実装です。

const res = await fetch('https://node.dokyumento.jp/api/documentation.json');
if (res.ok) {
  const data = await res.json();
  console.log(data);
} 

この実装は、Node.js のためにゼロから書かれた HTTP/1.1 クライアントである undici に基づいています。Node.js プロセスにバンドルされている undici のバージョンは、process.versions.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> グローバル名前空間オブジェクトです。

ブラウザでは、伝統的にトップレベルスコープはグローバルスコープでした。これは、ECMAScript モジュール内を除き、var something が新しいグローバル変数を定義することを意味します。Node.js では、これは異なります。トップレベルスコープはグローバルスコープではありません。Node.js モジュール内の var something は、それがCommonJS モジュールであれECMAScript モジュールであれ、そのモジュールに対してローカルになります。

クラス: Headers#

<Headers> のブラウザ互換実装です。

localStorage#

localStorage のブラウザ互換実装です。データは --localstorage-file CLI フラグで指定されたファイルに暗号化されずに保存されます。保存できるデータの最大量は 10 MB です。Web Storage API 以外でのこのデータの変更はサポートされていません。この API を無効にするには --no-webstorage (またはそのエイリアス --no-experimental-webstorage) CLI フラグを使用します。サーバーのコンテキストで使用する場合、localStorage のデータはユーザーごとやリクエストごとに保存されるのではなく、すべてのユーザーとリクエストで共有されます。

クラス: MessageChannel#

MessageChannel クラスです。詳細は MessageChannel を参照してください。

クラス: MessageEvent#

<MessageEvent> のブラウザ互換実装です。

クラス: MessagePort#

MessagePort クラスです。詳細は MessagePort を参照してください。

module#

この変数はグローバルに見えるかもしれませんが、そうではありません。module を参照してください。

クラス: Navigator#

安定性: 1.1 - 活発に開発中。この API を無効にするには --no-experimental-global-navigator CLI フラグを使用してください。

Navigator API の部分的な実装です。

navigator#

安定性: 1.1 - 活発に開発中。この API を無効にするには --no-experimental-global-navigator CLI フラグを使用してください。

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 - Experimental

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)#

  • callback <Function> キューに追加される関数。

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 - 早期開発段階。この API を有効にするには [--experimental-webstorage][] CLI フラグを使用してください。

<Storage> のブラウザ互換実装です。この API を無効にするには --no-webstorage (またはそのエイリアス --no-experimental-webstorage) CLI フラグを使用します。

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 - Experimental

WHATWG の URLPattern クラスです。URLPattern のセクションを参照してください。

クラス: URLSearchParams#

WHATWG の URLSearchParams クラスです。URLSearchParams のセクションを参照してください。

クラス: WebAssembly#

すべての W3C WebAssembly 関連機能の名前空間として機能するオブジェクトです。使用法と互換性については、Mozilla Developer Network を参照してください。

クラス: WebSocket#

<WebSocket> のブラウザ互換実装です。この API は --no-experimental-websocket CLI フラグで無効にできます。

クラス: WritableStream#

WritableStream のブラウザ互換実装です。

クラス: WritableStreamDefaultController#

WritableStreamDefaultController のブラウザ互換実装です。

クラス: WritableStreamDefaultWriter#

WritableStreamDefaultWriter のブラウザ互換実装です。