如何使用Buffer.from创建Buffer视图

时间:2018-03-12 13:58:19

标签: javascript node.js

我想在check.js documentation中检查后创建缓冲区的一部分视图我发现方法Buffer.from(arrayBuffer[, byteOffset[, length]])应该完全按照我的意愿行事。我从简单的案例开始,但它已经产生了意想不到的结果,所以我肯定做错了什么

var firstBuffer = Buffer.from('hello world');
var secondBuffer = Buffer.from(firstBuffer.buffer, 0, firstBuffer.length);

assert (firstBuffer.0 == secondBuffer.0) // fails

console.log (firstBuffer) // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
console.log (secondBuffer) // <Buffer da 07 00 00 da 07 00 00 db 07 00>

如何创建缓冲区视图?

1 个答案:

答案 0 :(得分:1)

事实证明,Buffer.from(string)的结果可能offset属性与0不同

知道修改后的代码有效:

var firstBuffer = Buffer.from('hello world');
var secondBuffer = Buffer.from(firstBuffer.buffer, firstBuffer.offset, firstBuffer.length);


console.log (firstBuffer)  // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
console.log (secondBuffer) // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>

assert (firstBuffer[0] == secondBuffer[0]) // pass

但遗憾的是,在官方文档中没有关于这个“功能”的信息