服務器端 JavaScript Node.js 13.0 發布

可用的 釋放 節點.js 13.0,用於在 JavaScript 中運行網頁應用程式的平台。 同時,Node.js 12.x上一分支的穩定工作也已完成,已轉入長期支援版本類別,更新週期為4年。 對 Node.js 10.0 之前的 LTS 分支的支援將持續到 2021 年 8.0 月,對最後一個 LTS 分支 2020 的支援將持續到 XNUMX 年 XNUMX 月。

主要的 改進:

  • V8引擎更新至版本 7.8,它使用了新的效能最佳化技術,改進了物件解構,減少了記憶體消耗,並減少了 WebAssembly 執行的準備時間;
  • 預設啟用對國際化和基於庫的 Unicode 的完全支持 重症監護室 (Unicode 的國際元件),允許開發人員編寫程式碼 支持的 使用不同的語言和區域設定。 現在預設安裝 full-icu 模組;
  • API 穩定 工人線程, 允許 創建多線程事件循環。 此實作基於worker_threads模組,它允許您在多個平行執行緒中執行JavaScript程式碼。 對 Workers Threads API 的穩定支援也已向後移植到 Node.js 12.x 的 LTS 分支;
  • 對平台的要求有所提高。 現在組裝 需要 至少 macOS 10.11(需 Xcode 10)、AIX 7.2、Ubuntu 16.04、Debian 9、EL 7、Alpine 3.8、Windows 7/2008;
  • 改進了對Python 3的支援。如果系統同時有Python 2和Python 3,則仍使用Python 2,但增加了系統上僅安裝Python 3時建置的能力;
  • HTTP 解析器的舊實作(「—http-parser=legacy」)已被刪除。 刪除或棄用了呼叫和屬性 FSWatcher.prototype.start()、ChildProcess._channel、ReadStream 和 WriteStream 物件中的 open() 方法、request.connection、response.connection、module.createRequireFromPath();
  • 下列的 出來 更新13.0.1,快速修復了多個錯誤。 特別是,npm 6.12.0 顯示有關使用不受支援的版本的警告的問題已解決。

讓我們回想一下,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

添加評論