全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

全面解析Node.js 8 重要功能和修复

5月30日12点,Node.js 8正式发布了,这个版本具有一系列新功能和性能改进,并且这些功能和改进将获得长期支持(LTS)。

下面就来介绍Node.js 8版本中最重要的功能和修复。

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

下载Node.js 8版本:https://nodejs.org/download/rc/v8.0.0-rc.2/

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的编译管道如下图所示。

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

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

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

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

将 npm 升级到 5.0.0

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

新 npm 版本的亮点:

  • 一种新的标准化的锁定文件功能,用于跨包管理器的兼容性(package-lock.json),以及一种用于shrinkwrap的新格式和语义
  • --save 已经不再需要了,因为所有的安装将默认保存
  • node-gyp现在支持Windows的node-gyp.cmd
  • 新的发布版本将会包括sha512和sha1校验

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

Buffer

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

Child Process

  • Argument和Kill信号验证得到改善
  • Child Process方法接受Uint8Array作为输入

Console

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

Domains

Native Promise实例现在是域感知的

文件系统

  • 实用程序类fs.SyncWriteStream已被弃用
  • 已弃用的fs.read( )字符串接口已被删除

HTTP

溢出的Cookie headers会被连接成一个字符串

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

Stream

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

TLS

该rejectUnauthorized选项现在默认为true

URL

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

Node.js 8 下一步要做什么

Node.js 8版本令我们兴奋,因为它包含了很多有趣的提升,例如Async Hooks API,这些API在当前的文档状态是很难掌握的。我们将尽快开始使用新版本,并尽快提供给用户新功能的更详细说明。


# node.js  # 8  # 重要功能和修复  # Node.js v8.0.0正式发布!看看带来了哪些主要新特性  # Centos6.8下Node.js安装教程  # 8 行 Node.js 代码实现代理服务器  # Node.js实现兼容IE789的文件上传进度条  # windows8.1+iis8.5下安装node.js开发环境  # Windows8下搭建Node.js开发环境教程  # shell脚本转发80端口数据包给Node.js服务器  # 已被  # 将会  # 句柄  # 升级到  # 新版本  # 有一  # 如果你  # 文档  # 也会  # 很难  # 将在  # 目的是  # 不需要  # 最重要  # 可以用  # 并在  # 这是一个  # 这也  # 这就  # 详细说明 


相关文章: 如何自定义建站之星模板颜色并下载新样式?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  魔方云NAT建站如何实现端口转发?  常州企业网站制作公司,全国继续教育网怎么登录?  如何通过西部数码建站助手快速创建专业网站?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  如何选择高效可靠的多用户建站源码资源?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何在新浪SAE免费搭建个人博客?  如何通过主机屋免费建站教程十分钟搭建网站?  如何高效利用亚马逊云主机搭建企业网站?  ,想在网上投简历,哪几个网站比较好?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  招商网站制作流程,网站招商广告语?  已有域名如何快速搭建专属网站?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  常州企业建站如何选择最佳模板?  个人网站制作流程图片大全,个人网站如何注销?  建站之星备案是否影响网站上线时间?  建站三合一如何选?哪家性价比更高?  建站之星2.7模板:企业网站建设与h5定制设计专题  建站之星微信建站一键生成小程序+多端营销系统  网站制作难吗安全吗,做一个网站需要多久时间?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  Swift开发中switch语句值绑定模式  建站主机SSH密钥生成步骤及常见问题解答?  安徽网站建设与外贸建站服务专业定制方案  在线教育网站制作平台,山西立德教育官网?  javascript中对象的定义、使用以及对象和原型链操作小结  制作电商网页,电商供应链怎么做?  如何在IIS中配置站点IP、端口及主机头?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  安云自助建站系统如何快速提升SEO排名?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  Android自定义listview布局实现上拉加载下拉刷新功能  5种Android数据存储方式汇总  网站制作的步骤包括,正确网址格式怎么写?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  南宁网站建设制作定制,南宁网站建设可以定制吗?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  常州自助建站工具推荐:低成本搭建与模板选择技巧  广东专业制作网站有哪些,广东省能源集团有限公司官网?  html制作网站的步骤有哪些,iapp如何添加网页?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何在云指建站中生成FTP站点?  建站VPS能否同时实现高效与安全翻墙? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。