宝哥软件园

Node.js 8中的重要新特性

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

随着node.js版本的发布(5月30日下午12点发布),我们获得了最新的LTS版本,其中包含了一系列新功能和性能改进。

在本文中,我们将介绍Node.js版本的重要功能和修复。

与之前的Node.js版本相比,8.0.0的功能相当强大。尽管其中一些仍在进行中,但许多仍在讨论中。但基本稳定可测试詹姆斯姆斯内尔(@贾斯内尔)2017年5月30日

新版本的代号是Carbon。节点8将从2017年10月起成为当前的LTS版本,并将持续到2019年12月31日。这也意味着Node.js 6.x版本将于2018年4月进入维护模式,2019年4月将被放弃。

您可以在这里获得8.0版本文档

异步钩子应用编程接口介绍

异步钩子(以前称为异步包装)应用编程接口允许您获取关于句柄对象生命周期的结构跟踪信息。

该应用编程接口可以发送消息来通知消费者Node.js中所有句柄对象的生命周期。它可以解决与延续本地存储NPM包相同的问题,但是它现在可以在Node的核心代码中实现。

如果你曾经使用过延续-本地-存储,你现在有了异步钩子,还有一个替代的-cls-钩子,但是它还不稳定,所以要小心使用!

异步钩子应用编程接口在Node.js 8中是如何工作的?

createHooks函数可以为每个异步操作的生命周期注册钩子函数。

const async hooks=require(' async _ hooks ')async hooks . createhooks({ init,pre,post,destroy})这些函数将根据处理程序的生命周期事件触发。

在这里阅读更多关于异步挂钩的信息,或者在这里查看当前进度。

氮-应用编程接口简介

N-API是一个用于编写本机插件的API。它独立于底层的JavaScript运行环境,但作为Node.js本身的一部分进行维护。它的目标是使应用程序二进制接口(ABI)在不同版本的Node.js之间保持稳定

N-API的目的是将额外的组件从底层JavaScript引擎的更改中分离出来,这样本机组件就可以在不同版本的Node环境中运行,而无需重新编译。

查看更多关于N-API的信息。

节点8中缓冲区安全性的改进

在Node.js 8之前,新的Buffer(Number)用于创建一个Buffer,但是内存没有初始化为0。因此,新的缓冲区实例可能包含敏感信息,从而导致安全问题。

虽然这可以加快缓冲区的创建,但在大多数情况下是不可行的。因为从Node.js 8开始,使用新Buffer(Number)或Buffer(Number)的人会自动将内存设置为0。

将V8升级到5.8:为涡扇发动机和发动机做准备

有了Node.js 8,底层的V8 JavaScript引擎也将得到更新。

它给Node.js用户带来的最大变化就是可以在V8 5.9中引入涡扇和点火。点火是V8的解释器,涡扇是优化编译器。

“点火和涡扇管道已经发展了近3年。它代表了V8团队通过测量真实的JavaScript性能并仔细考虑当前语言的缺点而获得的最终结果。这为我们未来几年继续优化JavaScript打下了基础。-丹尼尔克利福德和V8团队

以下是Node 8版本之前的V8编译管道的示例图

图片来源:Benedikt Meurer

这个管道最大的问题是新的语言函数必须在管道的不同部分实现,这增加了很多额外的开发工作。

这是一个没有全代码生成器和曲轴的简化管道外观:

图片来源:Benedikt Meurer

这条新管道大大减轻了V8团队的技术负担,实现了很多以前不可能实现的优化。

阅读更多关于涡扇发动机和点火以及涡扇发动机内联启发的信息

将npm升级到5.0.0

Node.js 8的新版本还附带了NPM 5——NPM CLI的最新版本。

新npm版本的亮点:

新的标准化文件锁定功能用于跨包管理器兼容性(package-lock.json),这是一种新的格式和包覆层语义。

-不再需要保存,默认情况下将保存所有安装。节点gyp现在支持Windows

现在将包括Sha512和sha1检查。

Node.js 8中其他值得注意的变化

缓冲区缓冲区方法现在接受Uint8Array作为输入

子进程

优化参数和压井信号验证

Childprocess方法接受Uint8Array作为输入

控制台使用控制台发送的错误事件现在受到限制

域本地承诺实例现在是域敏感的

文件系统

实用程序类fs。SyncWriteStream已被否决

fs.read()字符串接口已被删除

超文本传送协议

传出Cookie头被连接成一个字符串

httpResponse.writeHeader()方法已被否决

流流现在支持销毁()和_ _销毁()

TLS拒绝未授权选项现在默认为真

网址WHATWG网址实现现在是一个完全支持的节点. js应用编程接口

接下来是node.js8。

Node.js 8给我们带来了非常有趣的改进,包括目前很难掌握的Async Hooks API,文档也在不断改进。我们会尽快开始播放新版本,并尽快给大家更详细的讲解这些功能。

更多资讯
游戏推荐
更多+