欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2017年06月02日 16:40:51   作者:葡萄城控件技術團隊  
5月30日12點,Node.js 8正式發(fā)布了,這個版本具有一系列新功能和性能改進,并且這些功能和改進將獲得長期支持(LTS)。下面就來介紹Node.js 8版本中最重要的功能和修復

5月30日12點,Node.js 8正式發(fā)布了,這個版本具有一系列新功能和性能改進,并且這些功能和改進將獲得長期支持(LTS)。

下面就來介紹Node.js 8版本中最重要的功能和修復。

新版本的代號是Carbon。Node.js 8將從2017年10月起,正式成為當前的LTS版本,并持續(xù)到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發(fā)出的消息會將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,或查看正在進行的工作文檔。這些函數將會根據處理程序對象的生命周期事件選擇性觸發(fā)。

N-API 介紹

N-API是用于構建原生插件的API。它獨立于底層JavaScript運行時,并作為Node.js自身的一部分進行維護。這么做的目的是保證應用程序二進制接口(ABI)在不同Node.js版本之間能夠保持穩(wěn)定。

N-API的目的是將附加組件和基礎JavaScript引擎中的更改區(qū)分開,以便原生插件在不需要重新編譯情況下,就可以運行不同的Node.js版本。

了解更多N-API信息。

Node.js 8 中的緩沖區(qū)安全性改進

在Node.js 8版本之前,使用new Buffer(Number)構造函數分配的緩沖區(qū)并未使用ZEROS初始化內存空間。結果導致新的Buffer實例可能包含敏感信息,容易導致安全問題。

雖然這是一個用于提高創(chuàng)建新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是優(yōu)化編譯器。

“Ignition和TurboFan的聯合使用已經開發(fā)了近3½年,它代表了V8團隊集體認識的最終結果,是V8團隊收集了JavaScript的實測性能并仔細分析了Full-codegen的缺點和Crankshaft的結果。這也是能夠在未來幾年內繼續(xù)優(yōu)化JavaScript語言體系的基礎。“ - Daniel Clifford和V8團隊

目前V8的編譯管道如下圖所示。

這個管道的最大問題是,新的語言功能必須在管道的不同部分實現,這就增加了大量額外的開發(fā)工作。

下面是簡化的管道,沒有了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
  • 新的發(fā)布版本將會包括sha512和sha1校驗

Node.js 8 版本中的其它顯著改變

Buffer

Buffer方法現在接受Uint8Array作為輸入

Child Process

  • Argument和Kill信號驗證得到改善
  • Child Process方法接受Uint8Array作為輸入

Console

使用控制臺方法時,錯誤事件發(fā)送現在受到了抑制

Domains

Native Promise實例現在是域感知的

文件系統(tǒng)

  • 實用程序類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在當前的文檔狀態(tài)是很難掌握的。我們將盡快開始使用新版本,并盡快提供給用戶新功能的更詳細說明。

相關文章

  • pm2發(fā)布node配置文件ecosystem.json詳解

    pm2發(fā)布node配置文件ecosystem.json詳解

    這篇文章主要介紹了pm2發(fā)布node配置文件ecosystem.json詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • nodejs實現截取上傳視頻中一幀作為預覽圖片

    nodejs實現截取上傳視頻中一幀作為預覽圖片

    這篇文章主要為大家詳細介紹了nodejs實現截取上傳視頻中一幀作為預覽圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 使用Koa實現一個獲取視頻播放地址的接口

    使用Koa實現一個獲取視頻播放地址的接口

    在本節(jié)課中,我們將學習如何使用 Koa 實現一個獲取視頻播放地址的接口,我們將創(chuàng)建一個控制器,通過視頻 ID 獲取播放地址,并設置相應的路由,最后,我們將使用 Postman 進行測試,感興趣的朋友可以參考下
    2024-05-05
  • windows系統(tǒng)下更新nodejs版本的方案

    windows系統(tǒng)下更新nodejs版本的方案

    這篇文章主要介紹了windows系統(tǒng)下更新nodejs版本的方案,在文章給大家介紹了NodeJS 與 npm 在Windows下升級問題,需要的朋友可以參考下
    2017-11-11
  • 了不起的node.js讀書筆記之node的學習總結

    了不起的node.js讀書筆記之node的學習總結

    這篇文章主要介紹了了不起的node.js讀書筆記之node的學習總結,需要的朋友可以參考下
    2014-12-12
  • Nodejs中執(zhí)行的shell命令的代碼分享

    Nodejs中執(zhí)行的shell命令的代碼分享

    雖然nodejs運行時提供了和OS交互的諸多API命令,但是有些操作(例如:特定系統(tǒng)信息獲取)還是使用shell命令更加方便一些,下面就跟隨小編一起來看看有哪些是宜在nodejs中執(zhí)行的shell代碼吧
    2024-02-02
  • connect中間件session、cookie的使用方法分享

    connect中間件session、cookie的使用方法分享

    今天大象哥用了下connect的session和cookie,感覺還挺好用的,分享一下(里面坑挺多的,文檔寫的太模糊了,費了哥不少時間)。
    2014-06-06
  • 詳解Node.js中exports和module.exports的區(qū)別

    詳解Node.js中exports和module.exports的區(qū)別

    這篇文章主要介紹了詳解Node.js中exports和module.exports的區(qū)別,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • node實現簡單的反向代理服務器

    node實現簡單的反向代理服務器

    本篇文章主要介紹了node實現簡單的反向代理,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Node實現前端本地開發(fā)接口代理服務

    Node實現前端本地開發(fā)接口代理服務

    本文主要介紹了Node實現前端本地開發(fā)接口代理服務,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05

最新評論