服务器端 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 请求时存储数据,这让人想起其他语言中的线程本地存储。
  • 删除了加载时有关实验性功能的警告消息 模块 ECMAScript 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 任意事件, 红宝石事件机, Python 扭曲 и 执行 Tcl 中的事件,但 Node.js 中的事件循环对开发人员是隐藏的,类似于浏览器中运行的 Web 应用程序中的事件处理。 在为 Node.js 编写应用程序时,有必要考虑事件驱动编程的细节,例如,不要执行“var result = db.query(“select..”);” 在等待工作完成以及后续处理结果的过程中,Node.js 采用了异步执行的原理,即代码转换为“db.query(“select..”, function (result) {结果处理});”,其中控制权将立即传递给后续代码,并且查询结果将在数据到达时进行处理。 。

来源: opennet.ru

添加评论