Node.js8有哪些重要功能和修復-創(chuàng)新互聯(lián)

Node.js 8有哪些重要功能和修復,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

站在用戶的角度思考問題,與客戶深入溝通,找到巍山網(wǎng)站設計與巍山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊虛擬主機、企業(yè)郵箱。業(yè)務覆蓋巍山地區(qū)。

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

Async Hooks API介紹

Async Hooks (以前稱為AsyncWrap) API允許獲取有關(guān)句柄對象生命周期的結(jié)構(gòu)跟蹤信息。

API發(fā)出的消息會將Node.js中所有句柄對象的生命周期告知給consumer。它試圖解決類似于continuation-local-storage npm package這樣的問題。

如果你正在使用continuation-local-storage,那么已經(jīng)可以用稱為cls-hook的async hooks來代替使用了 – 只是目前并不是使用async hooks的最好時機,所以需要謹慎使用!

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

createHooks函數(shù)的注冊功能會被每一個異步操作的不同生命周期事件調(diào)用。

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

了解更多Async Hooks,或查看正在進行的工作文檔。這些函數(shù)將會根據(jù)處理程序?qū)ο蟮纳芷谑录x擇性觸發(fā)。

N-API介紹

N-API是用于構(gòu)建原生插件的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)構(gòu)造函數(shù)分配的緩沖區(qū)并未使用ZEROS初始化內(nèi)存空間。結(jié)果導致新的Buffer實例可能包含敏感信息,容易導致安全問題。

雖然這是一個用于提高創(chuàng)建新Buffer性能的決定,但是對大多數(shù)人來說,并不打算這么使用。因此從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的聯(lián)合使用已經(jīng)開發(fā)了近3?年,它代表了V8團隊集體認識的最終結(jié)果,是V8團隊收集了JavaScript的實測性能并仔細分析了Full-codegen的缺點和Crankshaft的結(jié)果。這也是能夠在未來幾年內(nèi)繼續(xù)優(yōu)化JavaScript語言體系的基礎?!?- Daniel Clifford和V8團隊

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

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

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

下面是簡化的管道,沒有了FullCode Generator和Crankshaft:

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

新管道大大降低了V8團隊的技術(shù)負擔,并實現(xiàn)了很多之前無法實現(xiàn)的改進。

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

將npm升級到5.0.0

新的Node.js 8版本還附帶npm 5 - 最新版本的npm CLI。

新npm版本的亮點:

  • 一種新的標準化的鎖定文件功能,用于跨包管理器的兼容性(package-lock.json),以及一種用于shrinkwrap的新格式和語義

  • --save 已經(jīng)不再需要了,因為所有的安裝將默認保存

  • node-gyp現(xiàn)在支持Windows的node-gyp.cmd

  • 新的發(fā)布版本將會包括sha512和sha1校驗

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

Buffer

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

Child Process

  • Argument和Kill信號驗證得到改善

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

Console

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

Domains

Native Promise實例現(xiàn)在是域感知的

文件系統(tǒng)

  • 實用程序類fs.SyncWriteStream已被棄用

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

HTTP

  • 溢出的Cookie headers會被連接成一個字符串

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

Stream

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

TLS

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

URL

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

看完上述內(nèi)容,你們掌握Node.js 8有哪些重要功能和修復的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,感謝各位的閱讀!

新聞標題:Node.js8有哪些重要功能和修復-創(chuàng)新互聯(lián)
鏈接URL:http://bm7419.com/article20/gjdjo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序網(wǎng)站收錄、定制網(wǎng)站搜索引擎優(yōu)化、網(wǎng)站營銷、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營