2.3. テクノロジープレビューの機能

以下の機能は、Node.js 18 LTS リリースのテクノロジープレビュー機能として利用できます。

2.3.1. Fetch API

実験的な fetch API がグローバルオブジェクトとして利用できます。fetch API は、Node.js の HTTP/1.1 クライアントである Undici と、Fetch Web API の Node.js 実装を提供する node-fetch モジュールに基づいています。

以下に例を示します。

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

この機能強化により、次のグローバルオブジェクトを使用できるようになりました。

  • fetch (ブラウザー互換バージョンの fetch() 関数)
  • FormData (FormData インターフェイスのブラウザー互換バージョン)
  • Headers (Headers インターフェイスのブラウザー互換バージョン)
  • Request (Request インターフェイスのブラウザー互換バージョン)
  • Response (Response インターフェイスのブラウザー互換バージョン)

--no-experimental-fetch コマンドラインオプションを使用して、fetch API を無効にできます。

2.3.2. グローバルスコープの Web Streams API

Web Streams API は、Red Hat build of Node.js 16 リリースでテクノロジープレビュー機能として導入されました。このリリースでは、Node.js はグローバルスコープで Web Streams API を公開するようになりました。これは、stream/web コアモジュールを使用してのみ Web Streams API にアクセスできた以前のリリースの動作に優先されます。

この機能強化により、次の API をグローバルオブジェクトとして使用できるようになりました。

ReadableStreamReadableStreamDefaultReaderReadableStreamBYOBReaderReadableStreamBYOBRequestReadableByteStreamControllerReadableStreamDefaultControllerTransformStreamTransformStreamDefaultControllerWritableStreamWritableStreamDefaultWriterWritableStreamDefaultControllerByteLengthQueuingStrategyCountQueuingStrategyTextEncoderStreamTextDecoderStreamCompressionStreamDecompressionStream

2.3.3. ESM Loader Hooks API による複数のカスタムローダーのサポート

ESM ローダーフック API は、Red Hat build of Node.js 16 リリースでテクノロジープレビュー機能として導入されました。ESM Loader Hooks API は、複数のカスタムローダーをサポートするようになりました。

複数のローダーが連携できるようにするために、この機能は チェーン と呼ばれるプロセスを使用します。これはプロミスチェーンに似ています。 たとえば、first-loadersecond-loader を呼び出し、second-loaderthird-loader を呼び出します。

注記

カスタムローダーがチェーン内の次のローダーを意図的に呼び出さない場合、カスタムローダーは短絡を通知する必要があります。

詳細は、Node.js ECMAScript モジュールのドキュメント を参照してください。

2.3.4. ウォッチモード

node --watch オプションを使用して、ウォッチモードで Node.js アプリケーションを実行できるようになりました。

アプリケーションをウォッチモードで実行すると、インポートしたファイルを変更した場合は、プロセスが再起動されます。