node中stream與buffer的關係

JavaScript 語言自身只有字符串數據類型,沒有二進制數據類型。

但在處理像TCP流或文件流時,必須使用到二進制數據。因此在 Node.js中,定義了一個 Buffer 類,該類用來創建一個專門存放二進制數據的緩存區。

所以在一個應用程序中,stream是一組有序的、有起點和終點的字節數據的傳輸手段。

Buffer 用於創建一個專門存放二進制數據的緩存區

 

Stream 有四種流類型,且所有的 Stream 對象都是 EventEmitter 的實例: 
- Readable – 可讀操作。 
- Writable – 可寫操作。 
- Duplex – 可讀可寫操作. 
- Transform – 操作被寫入數據,然後讀出結果

 

在應用中,因爲在後端與前端、後端的IO中,每當需要在 Node.js 中處理I/O操作中移動的數據時,就有可能使用 Buffer 庫,很多時候會出現數據過大,不能一次性讀取的問題。會導致程序的等待時間過長,因此,流操作(stream)便營運而生。

在readable和writable的Stream之間築起溝通,如果僅僅使用事件方法來進行的話,代碼會顯得很冗雜,因此需要出現pipe(管道)方法來進行。

readable.pipe(writable);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章