用于运行 JavaScript 网络应用程序的平台 Node.js 26.0.0 已发布。Node.js 26.0 被指定为长期支持 (LTS) 分支,但此状态将在 10 月份稳定后正式授予。Node.js 26.x 的支持将持续到 2029 年 5 月。之前的 LTS 分支 Node.js 24.x 的支持将持续到 2028 年 4 月 30 日,再之前的 LTS 分支 22.x 的支持将持续到 2027 年 4 月 30 日。20.x LTS 分支的维护已于 2026 年 4 月 30 日结束,Node.js 25.x 中间分支的维护将于 2026 年 6 月 1 日结束。
主要改进:
- 时间 API 默认启用,提供了一组用于处理日期和时间的替代方法。该 API 允许您操作日期(无论是否考虑时区)、转换时间、格式化输出以及对时间执行算术运算。时间可以以与时区无关的表示形式(Temporal.PlainDate、Temporal.PlainTime、Temporal.PlainDateTime)、带有时区引用的表示形式(Temporal.ZonedDateTime)以及纪元表示形式(Temporal.Instant - 自 1970 年 1 月 1 日以来的纳秒数)指定。
- V8 引擎已更新至 14.6 版本,该版本用于 Chromium 146。与之前的 Node.js 版本相比,改进之处包括可以使用 Iterator.concat() 方法将多个迭代器合并为一个,以及实现了“upsert”规范,从而简化了在 JavaScript Map 和 WeakMap 对象中处理键/值对集合的操作。
- HTTP 客户端 undici 已更新至 8.x 分支。
- http.Server.prototype.writeHeader() 方法已被移除;请改用 http.Server.prototype.writeHead()。
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。连接复用使用 libuv 库,该库在 Unix 系统上基于 libev,在 Linux 系统上基于 IOCP。 Windowslibeio 库用于创建线程池,并集成了 c-ares 以非阻塞模式执行 DNS 查询。所有阻塞系统调用都在线程池内执行,然后像信号处理程序一样,通过一个未命名的管道返回结果。
JavaScript 代码的执行是通过 Google 的 V8 引擎实现的。Node.js 在本质上与 Perl 的 AnyEvent 框架、Ruby 的 Event Machine、Python 的 asyncio 框架以及 Tcl 的事件实现类似。然而,Node.js 的事件循环对开发者是隐藏的,其机制类似于在浏览器中运行的 Web 应用程序中的事件处理。
来源: opennet.ru
