服務器端 JavaScript Node.js 14.0 發布

發生 釋放 節點.js 14.0,用於在 JavaScript 中運行網頁應用程式的平台。 Node.js 14.0 是一個長期支援分支,但只有在穩定後的 14.0 月才會分配此狀態。 將支援 Node.js XNUMX 進行 直到 2023 年 12.0 月。 Node.js 2022 之前的 LTS 分支的維護將持續到 10.0 年 2021 月,前年的 LTS 分支 13 的維護將持續到 XNUMX 年 XNUMX 月。 對 XNUMX.x staging 分支的支持將於今年 XNUMX 月結束。

主要的 改進:

  • 即時產生或某些事件發生時產生的能力已穩定 診斷報告,它顯示有助於診斷問題的事件,例如崩潰、效能下降、記憶體洩漏、CPU 負載過重、意外錯誤輸出等。
  • 新增了實驗性 API 支援 非同步本地存儲 透過 AsyncLocalStorage 類別的實現,該類別可用於根據回呼呼叫和承諾建立具有處理程序的非同步狀態。 AsyncLocalStorage 允許您在處理 Web 請求時儲存數據,這讓人想起其他語言中的線程本地儲存。
  • 刪除了載入時有關實驗性功能的警告訊息 莫達杜萊伊 ECMA 腳本 6 使用匯入和匯出語句連接和匯出。 同時,ESM 模組本身的實作仍處於實驗階段。
  • V8引擎更新至版本 8.1 (1, 2, 3),其中包括新的效能最佳化和功能,例如新的邏輯串聯運算子“??” (如果左操作數為 NULL 或未定義,則傳回右運算元,反之亦然),「?.」運算符用於一次檢查整個屬性或呼叫鏈(例如,“db?.user?.name?.length”,無需初步檢查)、用於取得本地化名稱的 Intl.DisplayName 方法等。
  • 對 Streams API 進行了修訂,旨在提高 Streams API 的一致性並消除 Node.js 基本部分的行為差異。 例如,http.OutgoingMessage 的行為接近stream.Writable,而net.Socket 則類似於stream.Duplex。 autoDestroy 選項預設為“true”,這表示完成後呼叫“_destroy”。
  • 新增了實驗性 API 支援 瓦西 (WebAssembly 系統接口),提供與作業系統直接互動的軟體介面(用於處理檔案、套接字等的 POSIX API)。
  • 增加了以下要求 最小版本 編譯器與平台:macOS 10.13 (High Sierra)、GCC 6、 Windows 較新版本 7/2008R2.

讓我們回想一下,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 查詢的 戰神。 所有導致阻塞的系統呼叫都在執行緒池中執行,然後像訊號處理程序一樣,透過無名管道將其工作結果傳回。 透過使用 Google 開發的引擎確保 JavaScript 程式碼的執行 V8 (此外,微軟正在開發具有 Chakra-Core 引擎的 Node.js 版本)。

從本質上講,Node.js 與框架類似 Perl 任何事件, 紅寶石事件機, 蟒蛇扭曲 и 執行 Tcl 中的事件,但 Node.js 中的事件循環對開發人員是隱藏的,類似於瀏覽器中執行的 Web 應用程式中的事件處理。 在為 Node.js 編寫應用程式時,有必要考慮事件驅動程式設計的細節,例如,不要執行“var result = db.query(“select..”);” Node.js 等待工作完成並後續處理結果,採用的是非同步執行的原理,即程式碼轉換為“db.query(“select..”, function (result) {結果處理});”,其中控制權將立即傳遞給後續程式碼,並且查詢結果將在資料到達時進行處理。 。

來源: opennet.ru

添加評論