您好,登錄后才能下訂單哦!
Node.js Stream(流)
Stream 是 Node.js 中非常重要的一個(gè)模塊,應(yīng)用廣泛。
Stream 是一個(gè)抽象接口,Node 中有很多對(duì)象實(shí)現(xiàn)了這個(gè)接口。例如,對(duì)http 服務(wù)器發(fā)起請(qǐng)求的request 對(duì)象就是一個(gè) Stream,還有stdout(標(biāo)準(zhǔn)輸出)。
該抽象接口是可讀、可寫(xiě)或是既可讀又可寫(xiě)的,通過(guò)這些接口,我們可以和磁盤(pán)文件、套接字、HTTP請(qǐng)求來(lái)交互,實(shí)現(xiàn)數(shù)據(jù)從一個(gè)地方流動(dòng)到另一個(gè)地方的功能。
Node.js,Stream 有四種流類(lèi)型:
-Readable - 可讀操作。
-Writable - 可寫(xiě)操作。
-Duplex - 可讀可寫(xiě)操作.
-Transform - 操作被寫(xiě)入數(shù)據(jù),然后讀出結(jié)果。
所有的 Stream 對(duì)象都是 EventEmitter 的實(shí)例。常用的事件有:
-data - 當(dāng)有數(shù)據(jù)可讀時(shí)觸發(fā)。
-end - 沒(méi)有更多的數(shù)據(jù)可讀時(shí)觸發(fā)。
-error - 在接收和寫(xiě)入過(guò)程中發(fā)生錯(cuò)誤時(shí)觸發(fā)。
-finish - 所有數(shù)據(jù)已被寫(xiě)入到底層系統(tǒng)時(shí)觸發(fā)。
。。。
管道流http://www.iis7.com/a/lm/yczmljgj/
管道提供了一個(gè)輸出流到輸入流的機(jī)制。通常我們用于從一個(gè)流中獲取數(shù)據(jù)并將數(shù)據(jù)傳遞到另外一個(gè)流中。
。。。
鏈?zhǔn)搅?
鏈?zhǔn)绞峭ㄟ^(guò)連接輸出流到另外一個(gè)流并創(chuàng)建多個(gè)對(duì)個(gè)流操作鏈的機(jī)制。鏈?zhǔn)搅饕话阌糜诠艿啦僮鳌?
接下來(lái)我們就是用管道和鏈?zhǔn)絹?lái)壓縮和解壓文件。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。