节点。js 8的特性有哪些

  介绍

这期内容当中小编将会给大家带来有关节点。js 8的特性有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>异步hook API简介

异步钩子(以前称为AsyncWrap) API允许您获取有关句柄对象生命周期的结构跟踪信息。

API可以发送消息通知消费者关于节点。js中所有句柄对象的生命周期。它可以解决与continuation-local-storage npm包相同的问题,只不过现在可以在节点核心代码中实现。

如果您曾经使用过continuation-local-storage,那么现在有了异步钩子,目前有一个替代方案——cls-hooked ,但目前尚未稳定,因此谨慎使用!

异步hook API如何在节点。js 8中工作的?

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

const  asyncHooks =,需要(& # 39;async_hooks& # 39;)      asyncHooks.createHooks ({,   初始化,   前,   ,,   ,破坏   })

这些函数将根据处理程序的生命周期事件触发。

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

<强> N-API简介

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

N-API的目的是将附加组件与底层JavaScript引擎的更改分开,以便原生组件可以在不同版本的节点环境中运行并且不需要重新编译。

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

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

在节点。js 8之前,用新的缓冲区(数量)来创建一个缓冲区,并未将内存初始化为0,因此,新的缓冲区实例可能包含敏感信息,导致安全问题。

虽然这样可以使缓冲区的创建更快,但对于大多数情况来看,这并不可行。因为从节点。js 8开始,使用新的缓冲区(数字)或者缓冲区(数量)的将会自动将内存置为0。

将V8升级到5.8:为涡扇和Ingnition做准备

使用节点。js 8底层的V8 JavaScript引擎也会被更新。

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


”点火和涡扇管道已经开发了近3,frac12;年。它代表了V8团队通过测量现实JavaScript性能并仔细考虑了当前语言中的缺点而获得的最终结果。这为我们能够在未来几年内继续优化JavaScript奠定了基础。丹尼尔·克利福德和V8团队

下面是节点8版本之前的V8编译管道的示例图

节点。js 8的特性有哪些

图片来源:Benedikt穆尔

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

这是简化的管道外观,没有FullCode发生器和曲轴:

节点。js 8的特性有哪些

图片来源:Benedikt穆尔

这一新管道大大降低了V8团队的技术负担,并且实现了以前不可能实现的大量优化。

阅读更多关于发动机点火和涡扇内联启发式

npm升级到5.0.0

新的节点。js 8版本还附带了npm 5 -最新版本的npm CLI。

npm新版本的亮点:

?一种新的标准化锁定文件的功能,用于跨套件管理器兼容性(package-lock。json),一种新的格式和收缩包装语义化。

?——保存不再需要,默认情况下将保存所有安装
?node-gyp现在支持窗口(node-gyp.cmd)

?现在将包括sha512和sha1校验。

<强>节点。js 8中的其他显着变化

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

<强>子进程

?优化参数和杀死信号校验

?子进程方法接受Uint8Array作为输入

控制台
?使用控制台发出的错误事件现在被限制


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

文件系统?实用工具类fs.SyncWriteStream已被弃用

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

HTTP

?传出的饼干头连接成一个字符串

? httpResponse.writeHeader()方法已被弃用


?流现在支持摧毁()和_destroy () API

TLS
? rejectUnauthorized选项现在默认为URL真正的


?WHATWG URL实现现在是完全支持的节点。js API

上述就是小编为大家分享的节点。js 8的特性有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

节点。js 8的特性有哪些