服务器端 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 的完全支持 ICU (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 任意事件, 红宝石事件机, Python 扭曲 и 执行 Tcl 中的事件,但 Node.js 中的事件循环对开发人员是隐藏的,类似于浏览器中运行的 Web 应用程序中的事件处理。 在为 Node.js 编写应用程序时,有必要考虑事件驱动编程的细节,例如,不要执行“var result = db.query(“select..”);” 在等待工作完成以及后续处理结果的过程中,Node.js 采用了异步执行的原理,即代码转换为“db.query(“select..”, function (result) {结果处理});”,其中控制权将立即传递给后续代码,并且查询结果将在数据到达时进行处理。 。

来源: opennet.ru

添加评论