Node.js v24.6.0 新功能速览 🚀🚀🚀

前言

Node.js v24.6.0 发布了,让我们一起来看看这些朴实却强大的变化!

往期精彩推荐

正文

以下是 v24.6.0 的核心更新和功能的详细介绍。

1. CLI:系统 CA 支持

Node.js v24.6.0 新增 NODE_USE_SYSTEM_CA=1 环境变量,支持使用系统 CA 证书。这简化了企业环境下的证书配置,提升兼容性。

示例

bash 复制代码
NODE_USE_SYSTEM_CA=1 node app.js

这对需要严格安全合规的场景尤其实用。

2. Crypto:支持 ML-DSA 算法

Crypto 模块新增了对 ML-DSA(Module Lattice-based Digital Signature Algorithm)的支持,包括 KeyObject 生成、签名和验证。这是后量子密码学算法,为未来安全奠定基础。

示例

javascript 复制代码
const crypto = require('crypto');

// 生成 ML-DSA 密钥对
const { publicKey, privateKey } = crypto.generateKeyPairSync('ml-dsa');

// 签名
const signature = crypto.sign(null, Buffer.from('data'), privateKey);

// 验证
const isValid = crypto.verify(null, Buffer.from('data'), publicKey, signature);
console.log(isValid); // true

这为高安全需求的加密应用提供了新选择。

3. Zlib:zstdCompress 和 zstdDecompress 字典支持

Zlib 模块的 zstdCompresszstdDecompress 函数新增字典支持,通过预定义常见模式提升压缩效率。

示例

javascript 复制代码
const zlib = require('zlib');
const dict = Buffer.from('common patterns'); // 自定义字典

const compressed = zlib.zstdCompressSync('data to compress', { dictionary: dict });
const decompressed = zlib.zstdDecompressSync(compressed, { dictionary: dict });
console.log(decompressed.toString()); // 'data to compress'

这优化了数据传输和存储场景。

4. HTTP:新增 keepAliveTimeoutBuffer 选项

HTTP 服务器新增 keepAliveTimeoutBuffer 选项,用于缓冲 keep-alive 超时,提升连接管理效率。

示例

javascript 复制代码
const http = require('http');

const server = http.createServer((req, res) => res.end('Hello'));
server.keepAliveTimeoutBuffer = 1000; // 缓冲 1 秒
server.listen(3000);

这有助于减少网络抖动,提高服务器稳定性。

5. Lib:文档废弃 http*

内部 HTTP 模块的 _http_* 函数已被文档废弃,鼓励使用标准 API,提升代码规范性。

6. FS:移植 SonicBoom 作为 Utf8Stream

FS 模块引入了 Utf8Stream,通过移植 SonicBoom 提升文件流处理性能,适合高吞吐量场景。

7. 其他改进

  • 基准测试:优化基准脚本,提升测试效率。
  • 依赖更新:升级 ada 到 3.2.7、OpenSSL 到 3.5.2,确保安全性。
  • 文档优化:修复 Pbkdf2Params 和 x509.keyUsage 的文档问题。

最后

Node.js 新版本从 Crypto 的后量子算法到 HTTP 的连接优化,这些功能让你的项目更健壮、更高效。快来升级到 v24.6.0,体验这些实用的新特性吧!

今天的分享就这些了,感谢大家的阅读!如果文章中存在错误的地方欢迎指正!

往期精彩推荐

相关推荐
bearpping5 小时前
Nginx 配置:alias 和 root 的区别
前端·javascript·nginx
@大迁世界6 小时前
07.React 中的 createRoot 方法是什么?它具体如何运作?
前端·javascript·react.js·前端框架·ecmascript
January12076 小时前
VBen Admin Select 选择框选中后仍然显示校验错误提示的解决方案
前端·vben
. . . . .6 小时前
前端测试框架:Vitest
前端
xiaotao1316 小时前
什么是 Tailwind CSS
前端·css·css3
颜酱7 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
战南诚7 小时前
VUE中,keep-alive组件与钩子函数的生命周期
前端·vue.js
发现一只大呆瓜7 小时前
React-彻底搞懂 Redux:从单向数据流到 useReducer 的终极抉择
前端·react.js·面试
霍理迪8 小时前
Vue的响应式和生命周期
前端·javascript·vue.js