什么是Buffer?
Buffer 對象類似于數(shù)組,每一個元素都是 16進制的兩位數(shù),即每一個元素可以表示一個 0-255 的值。
先看下Buffer長啥樣:
const buf = new Buffer('hello','utf-8')
console.log(buf); // <Buffer 68 65 6c 6c 6f>
判斷是否為Buffer對象
Buffer有個api是Buffer.isBuffer(),可以直接判斷是否為buffer對象
console.log(Buffer.isBuffer(buf)) // true
Buffer與JSON的互相轉(zhuǎn)化
-
JSON轉(zhuǎn)為Buffer
const obj = { a: '1' };
const buf = new Buffer(`${JSON.stringify(obj)}`);
console.log(buf) // <Buffer 7b 22 61 22 3a 22 31 22 7d>
-
Buffer轉(zhuǎn)為JSON
先將Buffer轉(zhuǎn)化為string,再轉(zhuǎn)化為JSON對象
const bufStr = buf.toString(); // 先將buf轉(zhuǎn)化為string
const bufJson = JSON.parse(bufStr); // 再將string轉(zhuǎn)化為json
console.log(bufJson) // { a: '1' }