Node.js Buffer.isBuffer方法使用说明

Buffer 对象的类型判断还挺常见的,尤其你在搞文件读写或者网络数据那块,总得先知道手上这玩意是不是个 Buffer 对吧?Node.js 里直接给你一个方法——Buffer.isBuffer(),一行就能搞定。

Buffer.isBuffer是个静态方法,专门用来判断一个东西是不是 Buffer 实例。你传个对象进去,返回true就是,false那就是不是,逻辑简单直接。

比如你有这么一段:

var b = new Buffer(50);
var e = Buffer.isBuffer(b);
console.log(e); // true

直接看结果就知道,b确实是 Buffer。

比较容易搞混的是Buffer.isEncoding(),这俩长得像,但干的事完全不一样。一个是查数据类型,一个是查编码是否合法。比如你写:

var d = Buffer.isEncoding('base64');
console.log(d); // false(其实应该是 true,原文有误)

这个用来确认是不是 Node.js 支持的编码方式,跟 Buffer 类型本身没啥关系。

源码其实也挺干脆,Buffer.isBuffer底下就是调了util.isBuffer

Buffer.isBuffer = function isBuffer(b) {
  return util.isBuffer(b);
};

这意思是你要懒得 import util模块,就直接用Buffer对象的也行,省事。

啥时候用它?举几个常见的:

  • HTTP 求数据时,先看看是不是 Buffer
  • 读取文件返回的数据,先校验下类型
  • 用户传来的东西,不确定是不是能直接操作,先过一遍这个方法
  • 流数据的时候也能派上用场

这方法不复杂,但在底层数据时还挺有用的。如果你在做数据转换或者流,记得加上这步校验,能省不少坑。

pdf 文件大小:19.56KB