buffer是node里的一個模塊,這個模塊的出現是因為js沒有閱讀和操作二進制數據流而出現的
buffer是什么及作用?
Buffer顧名思義叫緩沖區,用於存儲速度不同步的設備或優先級不同的設備之間傳輸數據;通過buffer可以減少進程間通信需要等待的時間,當存儲速度快的設備與存儲速度慢的設備進行通信時,存儲慢的數據先把數據存放到buffer,達到一定程度存儲快的設備再讀取buffer的數據,在此期間存儲快的設備CPU可以干其他的事情。buffer一般是用在寫入磁盤的,例如:某個進程要求多個字段被讀入,當所有要求的字段被讀入之前已經讀入的字段會先放到buffer中。
buffer來生產圖片示例代碼
var fs = require('fs'); fs.readFile('./public/images/avatar.jpg', function(err, originBuffer) { console.log(Buffer.isBuffer(originBuffer)); // 生成圖片2(把buffer寫入到圖片文件) fs.writeFile('./public/images/avatar2.jpg', originBuffer, function(err) { if(err) {console.log(err)} }); var base64Img = originBuffer.toString('base64'); // base64圖片編碼字符串 console.log(base64Img); var decodeImg = new Buffer(base64Img, 'base64'); // new Buffer(string, encoding) console.log(Buffer.compare(originBuffer, decodeImg)); // 0 表示一樣 // 生成圖片3(把base64位圖片編碼寫入到圖片文件) fs.writeFile('./public/images/avatar3.jpg', decodeImg, function(err) { if(err) {console.log(err)} }); });
附:Buffer工程簡介 《buffer詳解》