Node.js v8.0.0正式发布!看看带来了哪些主要新特性

 更新时间:2017年06月02日 10:34:14   作者:薛命灯  
Node.js v8.0.0 已正式发布。v8.0.0 是下一个主要的版本,带来了一系列重大的变化和新功能,内容十分多!下面这篇文章主要带着大家一起看看Node.js v8.0.0带来了哪些主要新特性,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

Node.js于5月30号在其官方博客上发布了Node.js v8.0.0。这一版本将成为当前的长期维护版本,从2017年10月开始到2019年12月31号。而Node.js v6.0.0将会在2018年4月进入维护模式,并于2019年4月结束。

最新发布的版本代号为Carbon,带来了很多重要的特性改进和一些全新的特性。

引入async_hooks模块

新引入实验性模块async_hooks(之前叫作async_wrap),它包含了一组用于诊断的API,开发人员可以用它监控Node.js事件循环里的各种操作,跟踪句柄对象全生命周期的事件。可以通过该模块的createHooks方法注册用于处理句柄对象生命周期各个阶段事件的函数。

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

更多关于这个新模块的内容可以查看文档和它的开发进度情况。

引入N-API

Node.js API(N-API)为开发人员提供了一组新的实验性API,用于开发原生插件。它独立于底层的JavaScript运行时,并作为Node.js的一部分进行维护。引入N-API的主要目的是提供一套与虚拟机无关的应用二进制接口(ABA),这样插件只要编译一次就可以运行在各种版本的Node.js上,甚至包括来自其他公司的虚拟机,比如微软的Chakra Core。

N-API也是一个实验特性,更多有关N-API的信息可以参考官方文档。开发人员现在就可以使用这套API,并可以提供反馈以便更好地改进API。

Buffer安全性的改进

在v8.0.0之前,Buffer是通过new Buffer(num)方法来分配的,并没有使用零值来初始化内存空间,新建的Buffer对象可能包含敏感数据,会导致安全问题。

不过,使用Buffer(num)构造函数创建出来的对象对性能有一点影响,如果开发人员更加看重性能,那么可以使用Buffer.allocUnsafe(num)来创建一个未初始化内存的对象。

// 使用零值初始化过的对象
const safeBuffer1 = Buffer.alloc(10);
const safeBuffer2 = new Buffer(10);
// 未初始化的对象
const unsafeBuffer = Buffer.allocUnsafe(10);

升级V8引擎到5.8版本

升级V8引擎带来了更好的性能和更多面向开发人员的API。V8 5.8可以保证ABA兼容5.9和即将到来的6.0,从而确保Node.js原生插件的稳定性。后续还会逐步将引擎升级到5.9和6.0。

升级引擎还意味着新的编译器管道——TurboFan和Ignition。Ignition是V8引擎的解释器,TurboFan是优化编译器,虽然它们在之前就已存在,但把它们作为默认的组合还是首次(将在V8 5.9里实现)。这是一个重大的转变,将为性能带来极大的提升。

升级npm到5.0.0

Node.js v8.0.0包含了最新的npm 5.0.0,其主要特性如下。

  • 新的标准化文件锁机制。
  • 不再需要--save,所有的安装都是默认保存的。
  • node-gyp现在支持Windows。
  • 新的发布包含SHA512和SHA1校验和检查。

更多有关npm 5.0.0的新特性可以参考npm的文档

Node.js v8.0.0还包括子进程、控制台、文件系统、流、HTTP、TLS、URL等方面的改进。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • node.js实现博客小爬虫的实例代码

    node.js实现博客小爬虫的实例代码

    这篇文章通过实例代码来给大家介绍如何利用node.js实现博客小爬虫,有需要的朋友们可以直接运用文中给出的实例代码来进行实践学习,感兴趣的朋友们下面来一起看看吧。
    2016-10-10
  • 浅谈关于axios和session的一些事

    浅谈关于axios和session的一些事

    这篇文章主要给大家介绍了关于axios和session的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看详细的介绍吧。
    2017-07-07
  • Node.js数据库操作之查询MySQL数据库(二)

    Node.js数据库操作之查询MySQL数据库(二)

    这篇文章主要介绍了Node.js数据库操作之查询MySQL数据库的相关资料,文中介绍的非常详细,对大家学习或者使用mysql能带来一定的帮助,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • Koa从零搭建到Api实现项目的搭建方法

    Koa从零搭建到Api实现项目的搭建方法

    这篇文章主要介绍了Koa从零搭建到Api实现项目的搭建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Koa代理Http请求的示例代码

    Koa代理Http请求的示例代码

    这篇文章主要介绍了Koa代理Http请求的示例代码,详解介绍了Koa 代理http请求,解决跨域问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • node.js中的Socket.IO使用实例

    node.js中的Socket.IO使用实例

    这篇文章主要介绍了node.js中的Socket.IO使用实例,本文讲解了Socket.IO的安装、结合express来构建服务器、基本使用方法及一个网络聊天室的完整案例,需要的朋友可以参考下
    2014-11-11
  • node.js(expree.js )模拟手机验证码登录功能

    node.js(expree.js )模拟手机验证码登录功能

    这篇文章主要介绍了node.js(expree.js )模拟手机验证码功能及登录功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • windows使用nvm对node进行版本管理切换的完整步骤

    windows使用nvm对node进行版本管理切换的完整步骤

    这篇文章主要介绍了windows使用nvm对node进行版本管理切换的完整步骤,在使用之前各位务必卸载掉自己安装过的nvm或者node版本包括环境变量之类的,要保证自己的电脑完全没有node环境,需要的朋友可以参考下
    2024-03-03
  • nodejs与浏览器中全局对象区别点总结

    nodejs与浏览器中全局对象区别点总结

    在本篇文章里小编给大家整理的是一篇关于nodejs与浏览器中全局对象区别点总结内容,对此有需要的朋友们可以学习下。
    2021-12-12
  • Vue+Node实现的商城用户管理功能示例

    Vue+Node实现的商城用户管理功能示例

    这篇文章主要介绍了Vue+Node实现的商城用户管理功能,结合实例形式详细分析了商城用户管理的前台登录、校验、跳转、退出等相关操作技巧,需要的朋友可以参考下
    2019-12-12

最新评论