這篇文章主要介紹了Node.js 8重要功能和修復(fù)的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到大余網(wǎng)站設(shè)計(jì)與大余網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋大余地區(qū)。5月30日12點(diǎn),Node.js 8正式發(fā)布了,這個(gè)版本具有一系列新功能和性能改進(jìn),并且這些功能和改進(jìn)將獲得長(zhǎng)期支持(LTS)。
下面就來(lái)介紹Node.js 8版本中最重要的功能和修復(fù)。
新版本的代號(hào)是Carbon。Node.js 8將從2017年10月起,正式成為當(dāng)前的LTS版本,并持續(xù)到2019年12月31日。這也意味著Node.js 6版本將在2018年4月進(jìn)入到維護(hù)模式,并在2019年4月結(jié)束維護(hù)支持。
下載Node.js 8版本:https://nodejs.org/download/rc/v8.0.0-rc.2/
Async Hooks API 介紹
Async Hooks (以前稱(chēng)為AsyncWrap) API允許獲取有關(guān)句柄對(duì)象生命周期的結(jié)構(gòu)跟蹤信息。
API發(fā)出的消息會(huì)將Node.js中所有句柄對(duì)象的生命周期告知給consumer。它試圖解決類(lèi)似于continuation-local-storage npm package這樣的問(wèn)題。
如果你正在使用continuation-local-storage,那么已經(jīng)可以用稱(chēng)為cls-hook的async hooks來(lái)代替使用了 – 只是目前并不是使用async hooks的最好時(shí)機(jī),所以需要謹(jǐn)慎使用!
Async Hooks API 在 Node.js 8 中如何工作
createHooks函數(shù)的注冊(cè)功能會(huì)被每一個(gè)異步操作的不同生命周期事件調(diào)用。
const asyncHooks = require('async_hooks') asyncHooks.createHooks({ init, pre, post, destroy })
了解更多Async Hooks,或查看正在進(jìn)行的工作文檔。這些函數(shù)將會(huì)根據(jù)處理程序?qū)ο蟮纳芷谑录x擇性觸發(fā)。
N-API 介紹
N-API是用于構(gòu)建原生插件的API。它獨(dú)立于底層JavaScript運(yùn)行時(shí),并作為Node.js自身的一部分進(jìn)行維護(hù)。這么做的目的是保證應(yīng)用程序二進(jìn)制接口(ABI)在不同Node.js版本之間能夠保持穩(wěn)定。
N-API的目的是將附加組件和基礎(chǔ)JavaScript引擎中的更改區(qū)分開(kāi),以便原生插件在不需要重新編譯情況下,就可以運(yùn)行不同的Node.js版本。
了解更多N-API信息。
Node.js 8 中的緩沖區(qū)安全性改進(jìn)
在Node.js 8版本之前,使用new Buffer(Number)構(gòu)造函數(shù)分配的緩沖區(qū)并未使用ZEROS初始化內(nèi)存空間。結(jié)果導(dǎo)致新的Buffer實(shí)例可能包含敏感信息,容易導(dǎo)致安全問(wèn)題。
雖然這是一個(gè)用于提高創(chuàng)建新Buffer性能的決定,但是對(duì)大多數(shù)人來(lái)說(shuō),并不打算這么使用。因此從Node.js 8開(kāi)始,使用new Buffer(Number)或Buffer(Number)分配的Buffers會(huì)被ZEROS自動(dòng)填充。
將 V8 升級(jí)到 5.8:TurboFan & Ingnition
使用Node.js 8版本,底層的V8 JavaScript引擎也會(huì)更新。
對(duì)于Node.js用戶(hù)來(lái)說(shuō),大的變化就是引入TurboFan和Ignition。Ignition是V8的解釋器,TurboFan是優(yōu)化編譯器。
“Ignition和TurboFan的聯(lián)合使用已經(jīng)開(kāi)發(fā)了近3½年,它代表了V8團(tuán)隊(duì)集體認(rèn)識(shí)的最終結(jié)果,是V8團(tuán)隊(duì)收集了JavaScript的實(shí)測(cè)性能并仔細(xì)分析了Full-codegen的缺點(diǎn)和Crankshaft的結(jié)果。這也是能夠在未來(lái)幾年內(nèi)繼續(xù)優(yōu)化JavaScript語(yǔ)言體系的基礎(chǔ)?!?- Daniel Clifford和V8團(tuán)隊(duì)
目前V8的編譯管道如下圖所示。
這個(gè)管道的大問(wèn)題是,新的語(yǔ)言功能必須在管道的不同部分實(shí)現(xiàn),這就增加了大量額外的開(kāi)發(fā)工作。
下面是簡(jiǎn)化的管道,沒(méi)有了FullCode Generator和Crankshaft:
新管道大大降低了V8團(tuán)隊(duì)的技術(shù)負(fù)擔(dān),并實(shí)現(xiàn)了很多之前無(wú)法實(shí)現(xiàn)的改進(jìn)。
了解更多TurboFan and Ignition 和 TurboFan Inlining Heuristics 。
將 npm 升級(jí)到 5.0.0
新的Node.js 8版本還附帶npm 5 - 最新版本的npm CLI。
新 npm 版本的亮點(diǎn):
一種新的標(biāo)準(zhǔn)化的鎖定文件功能,用于跨包管理器的兼容性(package-lock.json),以及一種用于shrinkwrap的新格式和語(yǔ)義
--save 已經(jīng)不再需要了,因?yàn)樗械陌惭b將默認(rèn)保存
node-gyp現(xiàn)在支持Windows的node-gyp.cmd
新的發(fā)布版本將會(huì)包括sha512和sha1校驗(yàn)
Node.js 8 版本中的其它顯著改變
Buffer
Buffer方法現(xiàn)在接受Uint8Array作為輸入
Child Process
Argument和Kill信號(hào)驗(yàn)證得到改善
Child Process方法接受Uint8Array作為輸入
Console
使用控制臺(tái)方法時(shí),錯(cuò)誤事件發(fā)送現(xiàn)在受到了抑制
Domains
Native Promise實(shí)例現(xiàn)在是域感知的
文件系統(tǒng)
實(shí)用程序類(lèi)fs.SyncWriteStream已被棄用
已棄用的fs.read( )字符串接口已被刪除
HTTP
溢出的Cookie headers會(huì)被連接成一個(gè)字符串
該httpResponse.writeHeader( )方法已被棄用
Stream
Stream現(xiàn)在支持destroy( )和_destroy( ) API
TLS
該rejectUnauthorized選項(xiàng)現(xiàn)在默認(rèn)為true
URL
WHATWG URL的實(shí)現(xiàn),現(xiàn)在是Node.js API完全支持的
Node.js 8 下一步要做什么
Node.js 8版本令我們興奮,因?yàn)樗撕芏嘤腥さ奶嵘鏏sync Hooks API,這些API在當(dāng)前的文檔狀態(tài)是很難掌握的。我們將盡快開(kāi)始使用新版本,并盡快提供給用戶(hù)新功能的更詳細(xì)說(shuō)明。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Node.js 8重要功能和修復(fù)的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)建站,關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。