サーバーサイド JavaScript Node.js 14.0 リリース

開催されました 解放する node.js 14.0、JavaScript でネットワーク アプリケーションを実行するためのプラットフォーム。 Node.js 14.0 は長期サポート ブランチに属しますが、このステータスは安定化後の 14.0 月にのみ割り当てられます。 Node.js XNUMX のサポートは 行われる 2023年12.0月まで。 以前の Node.js 2022 LTS ブランチのメンテナンスは 10.0 年 2021 月まで、以前の 13 LTS ブランチは XNUMX 年 XNUMX 月まで続きます。 XNUMX.x ステージング ブランチのサポートは、今年 XNUMX 月に終了します。

メイン 改善:

  • オンザフライで生成する機能、または特定のイベントが発生したときに生成する機能が安定しました。 診断レポート、クラッシュ、パフォーマンスの低下、メモリ リーク、高 CPU 負荷、予期しないエラー出力などの問題の診断に役立つイベントが反映されます。
  • 試験的な API サポートを追加しました 非同期ローカルストレージ コールバックとプロミスに基づくハンドラーで非同期状態を作成するために使用できる AsyncLocalStorage クラスの実装を使用します。 AsyncLocalStorage を使用すると、他の言語のスレッドローカル ストレージと同様に、Web リクエストの処理中にデータを保存できます。
  • 起動時の実験的機能の警告を削除しました モジュール ECMAScript 6 import およびexport ステートメントを使用して接続およびエクスポートします。 同時に、ESM モジュールの実装自体はまだ実験段階です。
  • V8エンジンがバージョンアップされました 8.1 (1, 2, 3)、新しいパフォーマンスの最適化が導入され、新しい論理結合演算子「??」などの新機能が追加されます。 (左側のオペランドが NULL または未定義の場合は右側のオペランドを返し、その逆の場合も同様)、「?.」 プロパティまたは呼び出しのチェーン全体の XNUMX 回限りのチェック (事前チェックなしの "db?.user?.name?.length" など)、ローカライズされた名前を取得するための Intl.DisplayName メソッドなど。
  • Streams API は、Streams API の一貫性を向上させ、Node.js コア部分の動作の違いに対処するために全面的に見直しられました。 たとえば、http.OutcomingMessage の動作は stream.Writable に似ており、net.Socket は stream.Duplex に似ています。 autoDestroy オプションはデフォルトで「true」に設定されており、完了時に「_destroy」が呼び出されることを意味します。
  • 試験的な API サポートを追加しました ワシ (WebAssembly システム インターフェイス) オペレーティング システム (ファイル、ソケットなどを操作するための POSIX API) と直接対話するためのプログラミング インターフェイスを提供します。
  • 要件の増加 最小バージョン コンパイラとプラットフォーム: macOS 10.13 (High Sierra)、GCC 6、 7/2008R2 より新しい Windows.

Node.js プラットフォームは、Web アプリケーションのサーバー保守と、通常のクライアントおよびサーバーのネットワーク プログラムの作成の両方に使用できることを思い出してください。 Node.js のアプリケーションの機能を拡張するには、大規模な モジュールのコレクションここには、HTTP、SMTP、XMPP、DNS、FTP、IMAP、POP3 サーバーとクライアントを実装したモジュール、さまざまな Web フレームワークとの統合用モジュール、WebSocket および Ajax ハンドラー、DBMS へのコネクタ (MySQL、PostgreSQL、SQLite) があります。 、MongoDB )、テンプレート エンジン、CSS エンジン、暗号化アルゴリズムと認証システム (OAuth) の実装、XML パーサー。

多数の並列リクエストを確実に処理するために、Node.js はノンブロッキング イベント処理とコールバック ハンドラーの定義に基づいた非同期コード実行モデルを使用します。 接続を多重化するためにサポートされているメソッドは、epoll、kqueue、/dev/poll、および select です。 ライブラリは多重接続に使用されます リブブ、それは上の上部構造です リベフ Unix システムでは、Windows では IOCP を介して。 ライブラリはスレッド プールの作成に使用されます リベイオ、統合されたノンブロッキングモードでDNSクエリを実行します。 ケアレス。 ブロッキングを引き起こすすべてのシステム コールはスレッド プール内で実行され、シグナル ハンドラーと同様に、名前のないパイプ (パイプ) を介して作業の結果を転送します。 JavaScript コードの実行は、Google が開発したエンジンを使用して提供されます。 V8 (さらに、Microsoft は Chakra-Core エンジンを備えた Node.js バリアントを開発中です)。

Node.js は本質的にフレームワークに似ています。 Perlの任意のイベント, Rubyイベントマシン, パイソンツイスト и 実装 Tcl ではイベントを処理しますが、Node.js のイベント ループは開発者には隠されており、ブラウザーで実行される Web アプリケーションのイベント処理に似ています。 Node.js のアプリケーションを作成するときは、たとえば、「var result = db.query("select..");」を実行する代わりに、イベント駆動型プログラミングの詳細を考慮する必要があります。 作業の完了を待機し、その後結果を処理することで、Node.js は非同期実行の原則を使用します。 コードは「db.query("select..", function (result) {結果処理});」に変換され、制御が即座に次のコードに渡され、データが到着するとクエリ結果が処理されます。 。

出所: オープンネット.ru

コメントを追加します