最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js 8 中的重要新特性

 更新時間:2017年06月28日 09:00:12   作者:鄭 farmer  
這篇文章主要介紹了Node.js 8 中的重要新特性的相關資料,需要的朋友可以參考下

隨著 Node.js 8.0 版本的發(fā)布(5月30日下午12點發(fā)布),我們得到了最新的 LTS 版本,具有一系列新功能和性能改進。

本文我們將介紹 Node.js 8.0 版本中重要的功能和修復。

與以前的 Node.js 版本相比,8.0.0相當強大。雖然這其中有些還正在進行,很多正在商榷。但基本上是穩(wěn)定和可測試的
•James M Snell(@jasnell)2017年5月30日

新版本的代號是 Carbon。Node 8 將從2017年10月起成為現(xiàn)行的 LTS 版本,并將保持到2019年12月31日。這也意味著 Node.js 6.x 版本將在 2018 年 4 月進入維護模式,并在 2019 年 4 月廢棄。

你可以在這里獲取 8.0 release文檔

Async Hooks API 簡介

Async Hooks(以前稱為 AsyncWrap )API允許您獲取有關句柄對象生命周期的結構跟蹤信息。

API 可以發(fā)送消息通知消費者關于 Node.js 中所有句柄對象的生命周期。它可以解決與continuation-local-storage npm package相同的問題,只不過現(xiàn)在可以在 Node 核心代碼中實現(xiàn)。

如果您曾經(jīng)使用過 continuation-local-storage,那么現(xiàn)在有了 async hooks ,目前有一個替代方案--cls-hooked  ,但目前尚未穩(wěn)定,因此謹慎使用!

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

createHooks函數(shù)可以為每一個異步操作的生命周期注冊鉤子函數(shù)。

const asyncHooks = require('async_hooks')

asyncHooks.createHooks({ 
 init,
 pre,
 post,
 destroy
})

這些函數(shù)將根據(jù)處理程序的生命周期事件觸發(fā)。

這里閱讀更多Async Hooks的信息,或者這里查看當前的進度。

N-API 簡介

N-API是用于編寫原生插件的 API。它獨立于底層的 JavaScript 運行環(huán)境,但作為 Node.js 本身的一部分進行維護。它的目標是使應用程序二進制接口(ABI)在不同 Node.js 版本之間保持穩(wěn)定。

N-API的目的是將附加組件與底層JavaScript引擎的更改分開,以便原生組件可以在不同版本的 Node 環(huán)境中運行并且不需要重新編譯。

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

Node 8 中 Buffer 安全性的改進

在 Node.js 8之前,用new Buffer(Number)來創(chuàng)建一個Buffer,并未將內存初始化為0。因此,新的緩沖區(qū)實例可能包含敏感信息,導致安全問題。

雖然這樣可以使 Buffer 的創(chuàng)建更快,但對于大多數(shù)情況來看,這并不可行。因為從 Node.js 8 開始,使用new Buffer(Number) 或者Buffer(Number) 的將會自動將內存置為0.

將V8升級到5.8:為 TurboFan 和Ingnition 做準備

使用 Node.js 8,底層的V8 JavaScript引擎也會被更新。

它給 Node.js 用戶帶來的最大的變化就是可以在 V8 5.9中引入TurboFan 和 Ignition 。Ignition 是 V8 的解釋器,而 TurboFan 是優(yōu)化編譯器。


“ Ignition 和 TurboFan 管道已經(jīng)開發(fā)了近3½年。它代表了 V8 團隊通過測量現(xiàn)實 JavaScript 性能并仔細考慮了當前語言中的缺點而獲得的最終結果。這為我們能夠在未來幾年內繼續(xù)優(yōu)化 JavaScript 奠定了基礎。- Daniel Clifford 和 V8 團隊

下面是 Node 8 版本之前的 V8 編譯管道的示例圖

圖片來源:Benedikt Meurer

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

這是簡化的管道外觀,沒有 FullCode Generator 和 Crankshaft:

圖片來源:Benedikt Meurer

這一新管道大大降低了V8團隊的技術負擔,并且實現(xiàn)了以前不可能實現(xiàn)的大量優(yōu)化。

閱讀更多關于 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 現(xiàn)在支持 Windows(node-gyp.cmd)

•現(xiàn)在將包括sha512和sha1校驗。

Node.js 8中的其他顯著變化

Buffer
•Buffer 方法現(xiàn)在接受 Uint8Array 作為輸入

Child Process

•優(yōu)化參數(shù)和 kill 信號校驗

•Child Process 方法接受 Uint8Array 作為輸入

Console
•使用 console 發(fā)出的錯誤事件現(xiàn)在被限制

Domains
•Native Promise 實例現(xiàn)在是 Domain 敏感的

File System

•實用工具類fs.SyncWriteStream已被棄用

•fs.read()字符串接口已被刪除

HTTP

•傳出的 Cookie 頭連接成一個字符串

•httpResponse.writeHeader()方法已被棄用

Stream
•Stream 現(xiàn)在支持destroy()和_destroy()API

TLS
•rejectUnauthorized選項現(xiàn)在默認為true

URL
•WHATWG URL實現(xiàn)現(xiàn)在是完全支持的 Node.js API

接下來是 Node.js 8

Node.js 8 為我們帶來了非常有趣的改進,包括Async Hooks API,它目前較難掌握,文檔還在不斷改進狀態(tài)。我們將盡快開始播放新版本,并盡快讓您對這些功能的更詳細的說明。

相關文章

  • nodejs實現(xiàn)截取上傳視頻中一幀作為預覽圖片

    nodejs實現(xiàn)截取上傳視頻中一幀作為預覽圖片

    這篇文章主要為大家詳細介紹了nodejs實現(xiàn)截取上傳視頻中一幀作為預覽圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 詳解Nodejs 通過 fs.createWriteStream 保存文件

    詳解Nodejs 通過 fs.createWriteStream 保存文件

    本篇文章主要介紹了Nodejs 通過 fs.createWriteStream 保存文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 利用node+koa+axios實現(xiàn)圖片上傳和回顯功能

    利用node+koa+axios實現(xiàn)圖片上傳和回顯功能

    這篇文章為大家詳細介紹了如何利用node+koa+axios實現(xiàn)圖片上傳和回顯功能,主要實現(xiàn)簡單的圖片上傳和靜態(tài)內容的訪問,感興趣的可以了解一下
    2022-05-05
  • node+axios實現(xiàn)服務端文件上傳示例

    node+axios實現(xiàn)服務端文件上傳示例

    這篇文章主要介紹了node+axios實現(xiàn)服務端文件上傳示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 在node中使用jwt簽發(fā)與驗證token的方法

    在node中使用jwt簽發(fā)與驗證token的方法

    這篇文章主要介紹了在node中使用jwt簽發(fā)與驗證token的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • node中間層實現(xiàn)文件上傳功能

    node中間層實現(xiàn)文件上傳功能

    這篇文章主要介紹了node中間層實現(xiàn)文件上傳功能,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2018-06-06
  • windows實現(xiàn)npm和cnpm安裝步驟

    windows實現(xiàn)npm和cnpm安裝步驟

    這篇文章主要介紹了windows實現(xiàn)npm和cnpm安裝步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Node.js?使用?zlib?內置模塊進行?gzip?壓縮

    Node.js?使用?zlib?內置模塊進行?gzip?壓縮

    這篇文章主要介紹了Node.js?使用?zlib?內置模塊進行?gzip?壓縮,nodejs為我們提供了一個zlib內置模塊,我們可以使用它其中的gzip方法來對傳遞的數(shù)據(jù)進行壓縮,從而提高數(shù)據(jù)傳遞效率,更多相關內容需要的朋友可以參考一下
    2022-09-09
  • 解決Node.js包管理器安裝報錯npm?ERR!?code?1的問題

    解決Node.js包管理器安裝報錯npm?ERR!?code?1的問題

    在開發(fā)過程中,我們經(jīng)常需要使用各種Node.js包來擴展我們的應用程序功能,這些包通常通過npm(Node.js包管理器)進行安裝和管理,有時候我們可能會遇到一些關于npm的錯誤,本文將詳細介紹如何解決這個問題,并提供一個詳細的實例,需要的朋友可以參考下
    2024-03-03
  • nodejs?快速入門之事件循環(huán)

    nodejs?快速入門之事件循環(huán)

    這篇文章主要介紹了nodejs?快速入門之事件循環(huán)的相關資料,需要的朋友可以參考下
    2023-05-05

最新評論

玉树县| 车险| 林芝县| 昔阳县| 乌恰县| 蓬溪县| 方城县| 邢台县| 罗田县| 耿马| 富顺县| 布尔津县| 工布江达县| 桦甸市| 万州区| 靖宇县| 南丹县| 武功县| 洮南市| 大余县| 西宁市| 常山县| 蒲江县| 高陵县| 麦盖提县| 上栗县| 凤翔县| 北川| 兴隆县| 固阳县| 塔河县| 福建省| 罗城| 肃宁县| 宁城县| 镇赉县| 绥棱县| 乾安县| 宁武县| 鸡泽县| 武威市|