文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Node.js 8有哪些重要功能和修复

2023-06-04 12:58

关注

Node.js 8有哪些重要功能和修复,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Node.js 8有哪些重要功能和修复

Async Hooks API介绍

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

API发出的消息会将Node.js中所有句柄对象的生命周期告知给consumer。它试图解决类似于continuation-local-storage npm package这样的问题。

如果你正在使用continuation-local-storage,那么已经可以用称为cls-hook的async hooks来代替使用了 – 只是目前并不是使用async hooks的最好时机,所以需要谨慎使用!

Async Hooks API 在 Node.js 8 中如何工作

createHooks函数的注册功能会被每一个异步操作的不同生命周期事件调用。

const asyncHooks = require('async_hooks')asyncHooks.createHooks({    init,  pre,  post,  destroy})

了解更多Async Hooks,或查看正在进行的工作文档。这些函数将会根据处理程序对象的生命周期事件选择性触发。

N-API介绍

N-API是用于构建原生插件的API。它独立于底层JavaScript运行时,并作为Node.js自身的一部分进行维护。这么做的目的是保证应用程序二进制接口(ABI)在不同Node.js版本之间能够保持稳定。

N-API的目的是将附加组件和基础JavaScript引擎中的更改区分开,以便原生插件在不需要重新编译情况下,就可以运行不同的Node.js版本。

了解更多N-API信息。

Node.js 8中的缓冲区安全性改进

在Node.js 8版本之前,使用new Buffer(Number)构造函数分配的缓冲区并未使用ZEROS初始化内存空间。结果导致新的Buffer实例可能包含敏感信息,容易导致安全问题。

虽然这是一个用于提高创建新Buffer性能的决定,但是对大多数人来说,并不打算这么使用。因此从Node.js 8开始,使用new Buffer(Number)或Buffer(Number)分配的Buffers会被ZEROS自动填充。

将V8升级到5.8:TurboFan&Ingnition

使用Node.js 8版本,底层的V8 JavaScript引擎也会更新。

对于Node.js用户来说,最大的变化就是引入TurboFan和Ignition。Ignition是V8的解释器,TurboFan是优化编译器。

“Ignition和TurboFan的联合使用已经开发了近3?年,它代表了V8团队集体认识的最终结果,是V8团队收集了JavaScript的实测性能并仔细分析了Full-codegen的缺点和Crankshaft的结果。这也是能够在未来几年内继续优化JavaScript语言体系的基础。“ - Daniel Clifford和V8团队

目前V8的编译管道如下图所示。

Node.js 8有哪些重要功能和修复

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

下面是简化的管道,没有了FullCode Generator和Crankshaft:

 Node.js 8有哪些重要功能和修复

新管道大大降低了V8团队的技术负担,并实现了很多之前无法实现的改进。

了解更多TurboFan and Ignition 和 TurboFan Inlining Heuristics 。

将npm升级到5.0.0

新的Node.js 8版本还附带npm 5 - 最新版本的npm CLI。

新npm版本的亮点:

Node.js 8版本中的其它显著改变

Buffer

Buffer方法现在接受Uint8Array作为输入

Child Process

Console

使用控制台方法时,错误事件发送现在受到了抑制

Domains

Native Promise实例现在是域感知的

文件系统

HTTP

Stream

Stream现在支持destroy( )和_destroy( ) API

TLS

该rejectUnauthorized选项现在默认为true

URL

WHATWG URL的实现,现在是Node.js API完全支持的

看完上述内容,你们掌握Node.js 8有哪些重要功能和修复的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯