中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node.js中Buffer對象有什么用

發布時間:2021-07-29 10:14:38 來源:億速云 閱讀:176 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關node.js中Buffer對象有什么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Buffer對象,是Node的核心模塊,在面試中也是會頻繁被問到一個考題,如果沒有對其深入探究,可能就跟我一樣只會用,一旦面試官擴展問些問題可能就不會了。反正,當時我也只能回答說:目前涉及到的業務對Buffer模塊用的比較少,但是Buffer對象可以對于一些字符串傳輸無法滿足業務功能和性能上得到有效的優化。

Buffer對象

Buffer對象用于表示固定長度的字節序列

// 創建一個長度為 10、以零填充的 Buffer。
const buf1 = Buffer.alloc(10);

// 創建一個長度為 10 的 Buffer,
// 其中全部填充了值為 `1` 的字節。
const buf2 = Buffer.alloc(10, 1);

var str="hello Jasen"; 
var buf = new Buffer.from(str,'utf-8');
console.log(buf);

//輸出:<Buffer 68 65 6c 6c 6f 20 4a 61 73 65 6e>

觀察輸出的結果,Buffer對象類似一個數組。

Buffer對象中的每個元素都是16進制的兩位數(即0到255的數值)

對Buffer某個元素賦值如果小于0的,會逐次加256,直到得到一個0到255范圍的值,如果大于255則逐次減256,直到得到0-255范圍得值,如果是小數的話,則直接取整。

使用場景

  • 可用于處理大量二進制數據

  • 處理圖片、文件接收上傳、網絡協議等等

優勢

網絡傳輸中,性能提升

大部分網絡傳輸的時候會使用通過使用字符串,這難免需要轉換成Buffer,以二進制方式進行數據傳輸。如果我們直接預先轉換為Buffer 再進行傳輸,那么在傳輸過程中無需做額外的轉換,也避免了損耗,使性能得到提升。

以下通過ab進行一次性能測試,發起200個并發客戶端請求的結果,QPS提升的不是很高,但還是有一點點的提升,可以復制代碼執行下,是否結果和我一樣

node.js中Buffer對象有什么用

node.js中Buffer對象有什么用

var http = require('http');
var str = "";

for (var i = 0; i < 1024 * 10; i++) {
    str += "a";
}

str = new Buffer.from(str,'utf-8');

http.createServer(function (req, res) {
    res.writeHead(200);
    res.end(bufstr);
}).listen(8002);

Buffer與Stream

Stream 也是Node的核心模塊,數據就像流水一樣,流是對輸入輸出設備的抽象,是一組有序的、有起點和終點的字節數據傳輸手段。

Node.js 中有四種基本的流類型:

  • Writable - 可寫入數據的流(例如 fs.createWriteStream())

  • Readable - 可讀取數據的流(例如 fs.createReadStream())。

  • Duplex - 可讀又可寫的流(例如 net.Socket)。

  • Transform - 在讀寫過程中可以修改或轉換數據的 Duplex

場景:

文件分片上傳下載,比如下載電影時可以邊下載邊看,這樣一個實現過程。

關于“node.js中Buffer對象有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

容城县| 宁蒗| 馆陶县| 谷城县| 溆浦县| 黄平县| 府谷县| 德阳市| 成武县| 延吉市| 简阳市| 淮安市| 九龙县| 库伦旗| 平乐县| 芮城县| 十堰市| 宁夏| 南投市| 舟曲县| 介休市| 垫江县| 本溪| 汨罗市| 招远市| 茌平县| 景德镇市| 开鲁县| 边坝县| 沧源| 新疆| 措勤县| 乌鲁木齐县| 滨海县| 林周县| 固镇县| 岳池县| 余姚市| 仁布县| 成武县| 海口市|