Buffer是NodeJS的重要数据类型,很有广泛的应用。
Buffer是代表原始堆的分配额的数据类型。在NodeJS中以类数组的方式使用。
比如,用法示例:
var buf = new Buffer(255);
buf[0] = 23;
console.log(buf[0]);
解释:分配255个字节,第一个字节写入数据23。
Nodejs中文件操作、网络数据传输如Post数据,通常默认数据格式都是Buffer。
如:
var fs = require("fs");
fs.readFile("./test7.js",function(er,buf){
console.log(Buffer.isBuffer(buf));
});
![b7321501bf53d98d70b2901a269997b8.png](https://img-blog.csdnimg.cn/img_convert/b7321501bf53d98d70b2901a269997b8.png)
可以看到,默认读取到的数据buf是Buffer类型。
Buffer类型转换为其它格式
将上面的代码,稍做改动,输出buf会是这样:
![6359ebe5db32b2a9447642108abff78e.png](https://img-blog.csdnimg.cn/img_convert/6359ebe5db32b2a9447642108abff78e.png)
代码中读取的是test7.js,即本文例程代码。
对代码中的buf用toString()进行格式转换,转为字符串:
![d0950d02c8e7e58b17372efb208262e9.png](https://img-blog.csdnimg.cn/img_convert/d0950d02c8e7e58b17372efb208262e9.png)
输出将会是:
![9ab7f5587e983b8dbcd7f6d9daab1812.png](https://img-blog.csdnimg.cn/img_convert/9ab7f5587e983b8dbcd7f6d9daab1812.png)
注:toString()函数,默认的是转化为utf-8编码。还可转为ascii、utf16le、base64、hex等。
如下例,对base64编码的应用,可以用于字符串加解密:
![f62125ddde14764bd2d92a277418b2ce.png](https://img-blog.csdnimg.cn/img_convert/f62125ddde14764bd2d92a277418b2ce.png)
var user = 'wangliwen';
var pass = 'jshaman.com';
var auth_str = user + ':' + pass;
//不经预定义大小,直接传入字符串来创建buffer
var buf = new Buffer(auth_str);
//加密过程:转为base64编码
var encode = buf.toString('base64');
console.log(encode);
//解密过程
var decode = new Buffer(encode,'base64').toString();
console.log(decode);
实际用途:简单的加解密算法、加密数据传输,如登录校验时。
本文参考资料:
![9eb670f110bccd1b5d7dee8aaad8fa20.png](https://img-blog.csdnimg.cn/img_convert/9eb670f110bccd1b5d7dee8aaad8fa20.png)