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 をグローバルオブジェクトとして使用できるようになりました。
ReadableStream
、ReadableStreamDefaultReader
、ReadableStreamBYOBReader
、ReadableStreamBYOBRequest
、ReadableByteStreamController
、ReadableStreamDefaultController
、TransformStream
、TransformStreamDefaultController
、WritableStream
、WritableStreamDefaultWriter
、WritableStreamDefaultController
、ByteLengthQueuingStrategy
、CountQueuingStrategy
、TextEncoderStream
、TextDecoderStream
、CompressionStream
、DecompressionStream
2.3.3. ESM Loader Hooks API による複数のカスタムローダーのサポート
ESM ローダーフック API は、Red Hat build of Node.js 16 リリースでテクノロジープレビュー機能として導入されました。ESM Loader Hooks API は、複数のカスタムローダーをサポートするようになりました。
複数のローダーが連携できるようにするために、この機能は チェーン と呼ばれるプロセスを使用します。これはプロミスチェーンに似ています。 たとえば、first-loader
は second-loader
を呼び出し、second-loader
は third-loader
を呼び出します。
カスタムローダーがチェーン内の次のローダーを意図的に呼び出さない場合、カスタムローダーは短絡を通知する必要があります。
詳細は、Node.js ECMAScript モジュールのドキュメント を参照してください。
2.3.4. ウォッチモード
node --watch
オプションを使用して、ウォッチモードで Node.js アプリケーションを実行できるようになりました。
アプリケーションをウォッチモードで実行すると、インポートしたファイルを変更した場合は、プロセスが再起動されます。