如何将节点缓冲区转换为像console.log show这样的string

我想logging缓冲区string,但我不想使用buffer.toString()方法

console.log(new Buffer(12))

显示

< Buffer 00 22 33 11 55 ...>

但是console.log('buffer:' + new Buffer(12))

显示

buffer: something can't read

我想要

buffer: < Buffer 00 22 33 11 55 ...>

 var b = new Buffer([0x41, 0x42, 0x43, 0x44]); console.log(b); // <Buffer 41 42 43 44> 

和做一样

 console.log(b.inspect()); 

 var b = new Buffer([0x41, 0x42, 0x43, 0x44]); console.log('str' + b); // strABCD 

和做一样

 console.log('str' + b.toString()); 

因为使用string连接使用+自动使用.toString()将运算符的两端转换为string。 console.log(...)另一方面通过在可能时调用.inspect()将其参数转换为string。

最简单的做法是让console.log通过传递多个参数来完成它

 console.log('buffer:', new Buffer(12)) 

注意,而不是一个+ ,所以不是使用.toString连接,而是让console.log自己对每个参数进行string化。