在node中,buffer用於在記憶體中存放二進位數據,可以在處理TCP流或檔案流時作為快取區,專門用於存放使用到的二進位資料;nodejs無法控制資料傳輸的時間,若沒到發送時間,資料會存放在Buffer中,直到將資料傳送完畢。
本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。
在Node應用程式中,需要處理網路協定、操作資料庫、處理圖片、接收上傳檔案等,在網路流和檔案的操作中,要處理大量二進位數據,而Buffer就是在記憶體中開闢一片區域(初次初始化為8KB),用來存放二進位資料
在上述操作中都會存在資料流動,每個資料流動的過程中,都會有一個最小或最大資料量
如果資料到達的速度比進程消耗的速度快,那麼少數早到達的資料就會處於等待區等候被處理。反之,如果資料到達的速度比進程消耗的資料慢,那麼早先到達的資料需要等待一定量的資料到達之後才能被處理
這裡的等待區就指的緩衝區(Buffer),它是計算機中的一個小物理單位,通常位於計算機的RAM 中
簡單來講,Nodejs不能控制數據傳輸的速度和到達時間,只能決定何時發送數據,如果還沒到發送時間,則將數據放在Buffer中,即在RAM中,直至將它們發送完畢
上面講到了Buffer是用來存儲二進制數據,其的形式可以理解成一個數組,數組中的每一項,都可以保存8位元二進位:00000000,也就是一個位元組
定義了一個Buffer類,該類別用來建立一個專門存放二進位資料的快取區
#在處理像TCP 流或檔案流時,必須使用到二進位資料。因此在 Node.js 中,定義了一個 Buffer 類,該類別用來建立一個專門存放二進位資料的快取區。
建立 Buffer 類別
Node Buffer 類別可以透過多種方式來建立。
方法1
建立長度為10 位元組的Buffer 實例:
var buf = new Buffer(10);
方法2
透過給定的陣列建立Buffer 實例:
var buf = new Buffer([10, 20, 30, 40, 50]);
方法3
透過一個字串來建立Buffer 實例:
var buf = new Buffer("bianchengsanmei", "utf-8");
utf-8 是預設的編碼方式,此外它同樣支援以下編碼:"ascii", “ utf8”, “utf16le”, “ucs2”, “base64” 和“hex”。
推薦學習:《nodejs影片教學》
以上是node中的buffer有啥用的詳細內容。更多資訊請關注PHP中文網其他相關文章!