Node.js编程入门:你了解buffer吗?

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));

});

可以看到,默认读取到的数据buf是Buffer类型。

Buffer类型转换为其它格式

将上面的代码,稍做改动,输出buf会是这样:

代码中读取的是test7.js,即本文例程代码。

对代码中的buf用toString()进行格式转换,转为字符串:

输出将会是:

注:toString()函数,默认的是转化为utf-8编码。还可转为ascii、utf16le、base64、hex等。

如下例,对base64编码的应用,可以用于字符串加解密:

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);

实际用途:简单的加解密算法、加密数据传输,如登录校验时。

本文参考资料:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200115A0569V00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券