ニュース
「Node.js 18」がリリース ~fetch API、Web Streams APIがグローバルスコープで利用可能に
JavaScriptエンジン「V8」はv10.1へ
2022年4月20日 17:01
「Node.js」の新しいメジャーバージョン「Node.js 18」が、4月19日にリリースされた。JavaScriptエンジン「V8」がv10.1へアップデートされるなど、さまざまな機能強化が施されている。
fetch API
指定したURLのコンテンツを取得する「fetch()」関数が、グローバルスコープで利用可能になった。まだ試験的(experimental)とされているが、試験フラグを指定しなくても既定で利用できる。
ちなみに、「fetch()」関数の実装は「Node.js」のために書かれた HTTP/1.1 クライアントである「undici」をベースにしているとのこと。
Web Streams API
「Web Streams API」の試験的実装が、グローバルスコープで利用可能になった。従来のAPIとは別に、Webブラウザーと互換性のあるAPIが利用できるようになる。
HTTPタイムアウト
以下のパラメーターの既定値が更新される。サービス拒否(DoS)攻撃に備え、これらのパラメーターは「0」(タイムアウトなし)以外に設定することが推奨されている。
- server.headersTimeout:パーサーがHTTPヘッダーの受信を完了するまでの待機時間(ミリ秒)。既定値は60秒(60000)になる
- server.requestTimeout:クライアントからHTTPリクエスト全体の受信を完了するまでの待機時間(ミリ秒)。既定値は5分(300000)になる
これらのタイムアウトが経過すると、サーバーはステータスコード「408」で応答し、接続を閉じる。
「node:test」モジュール
結果をTAP形式で報告するJavaScriptテストの作成を支援するため、テストランナーモジュール(node:test)が試験的に追加される。
「V8」の更新に伴う新機能
「V8」がv10.1へアップデートされ、以下のJavaScript機能が利用できるようになる。また、クラスフィールドとプライベートクラスメソッドのパフォーマンスが向上し、初期化は通常のプロパティストアと同じくらい速くなっているとのこと。
- 配列メソッド「findLast()」「findLastIndex()」
- 「Intl.Locale()」の改善
- 「Intl.supportedValuesOf()」関数