node.js绿色解压版是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装,实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。Node.js 的生态系统是目前最大的开源包管理系统。
node.js电脑版软件特色:
node.js官方版是让Javascript脱离浏览器运行在服务器的一个平台,不是语言;
Node.js采用的Javascript引擎是来自Google Chrome的V8;运行在浏览器外不用考虑头疼的Javascript兼容性问题
采用单线程、异步IO与事件驱动的设计来实现高并发(异步事件也在一定程度上增加了开发和调试的难度);
Node.js内建一个HTTP服务器,所以对于网站开发来说是一个好消息;
node.js电脑版软件特性:
AbortController
Node.js 15 加入了 AbortController 的一个实验性实现。AbortController 是一个全局实用工具类,可根据 AbortController Web API,在选定的基于 Promise 的 API 中发出取消信号
N-API 7
N-API 7 是上一个大版本以来的第一个新版,并带来了使用 ArrayBuffers 的更多方法。
N-API是一个用于构建本机插件的API,它独立于底层Javascript运行时环境(如V8),并作为Node.js本身的一部分。此API将作为跨Node.js版本已编译的应用程序接口(Application Binary Interface)的稳定版,简称(ABI)。它是为了将Addons插件和底层Javascript引擎的改动隔离开来,并且允许在一个版本编译的模块不需要重新编译就可以在更高版本的Node.js上运行。
N-API是一个C语言的API,它确保了Node.js版本和不同编译器级别之间应用程序接口(ABI)的稳定性。C++ API可以更容易使用。为了支持使用C++,Node.js使用了一个C++包装器模块叫做node-addon-api,此包装器提供了一个可内联的C++ API。使用node-addon-api构建的二进制文件将依赖于Node.js导出的基于C函数符号的N-API接口,node-addon-api是一种更有效写代码的方法,用来编写调用N-API。
node.js电脑版软件优势:
npm 7
Node.js 15 附带了 npm 的新大版本 npm 7。npm 7 有许多新功能,包括 npm 工作区和新的 package-lock.json 格式。npm 7 还包括 yarn.lock 文件支持。npm 7 的一大变化是默认安装对等依赖项。有关 npm 7 的更多信息,包括重大更改的详细信息,请查看 GitHub 博客:https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/
unhandled rejections 默认抛出
从 Node.js 15 开始,unhandledRejection 的默认模式已更改为 throw(以前是 warn)。在 throw 模式下,如果未设置 unhandledRejection hook,则会将 unhandledRejection 提升为未捕获的异常。拥有 unhandledRejection hook 的用户应该不会看到任何行为变化,并且仍然可以使用 --unhandled-rejections=mode 进程标志来切换模式。
QUIC
QUIC 是一种新的基于 UDP 的传输协议,它是 HTTP/3 的基础传输协议。QUIC 具有内置的 TLS 1.3 安全性、流控制、错误纠正、连接迁移和多路复用。
Node.js 15 附带 QUIC 的实验性支持,可通过 --experimental-quic 配置标志编译 Node.js 来启用。核心 net 模块公开了 Node.js QUIC 实现,有关 QUIC 的更多信息,请查看 Node.js 文档:https://nodejs.org/dist/latest-v15.x/docs/api/quic.html
V8 8.6
V8 Javascript 引擎已更新为 V8 8.6。
node.js电脑版更新日志:
显著变化
这是一个安全发布。
显著变化
CVE-2024-21892-通过Linux功能进行代码注入和权限提升-(高)
CVE-2024-22019-http:读取具有无限制区块扩展的未处理http请求允许DoS攻击-(高)
CVE-2024-21896-猴子修补缓冲区内部的路径遍历-(高)
CVE-2024-22017-setuid()不会由于io_uring而放弃所有特权-(高)
CVE-2023-46809-Node.js易受Marvin攻击(针对PKCS#1 v1.5填充的Bleichenbacher攻击的定时变体)-(中等)
CVE-2024-21891-由于不正确的路径遍历序列净化,多权限模型绕过-(中等)
CVE-2024-21890---allow fs read和--allow fs-write中通配符处理不当(中等)
CVE-2024-22025-fetch()brotli解码中因资源耗尽而拒绝服务-(中等)