Node.js v24.6.0 新功能速览 🚀🚀🚀
前言
Node.js v24.6.0 发布了,让我们一起来看看这些朴实却强大的变化!
往期精彩推荐
- 🔥🔥🔥 原来在字节写代码就是这么朴实无华!🔥🔥🔥
- 🚀🚀🚀恭喜 Rolldown 获得 JS 开源奖年度突破奖,2025 年 JS 开源奖典礼回顾!🎉🎉🎉
- 🚀🚀🚀 深入探索 Node.js v22.18.0 新特性;默认支持运行 ts 文件了!
- 更多精彩文章欢迎关注我的公众号:萌萌哒草头将军
正文
以下是 v24.6.0 的核心更新和功能的详细介绍。
1. CLI:系统 CA 支持
Node.js v24.6.0 新增 NODE_USE_SYSTEM_CA=1
环境变量,支持使用系统 CA 证书。这简化了企业环境下的证书配置,提升兼容性。
示例:
NODE_USE_SYSTEM_CA=1 node app.js
这对需要严格安全合规的场景尤其实用。
2. Crypto:支持 ML-DSA 算法
Crypto 模块新增了对 ML-DSA(Module Lattice-based Digital Signature Algorithm)的支持,包括 KeyObject 生成、签名和验证。这是后量子密码学算法,为未来安全奠定基础。
示例:
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 模块的 zstdCompress
和 zstdDecompress
函数新增字典支持,通过预定义常见模式提升压缩效率。
示例:
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 超时,提升连接管理效率。
示例:
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,体验这些实用的新特性吧!
今天的分享就这些了,感谢大家的阅读!如果文章中存在错误的地方欢迎指正!