在 Node.JS 插件中,我想处理来自Buffer
( ArrayBufferView
) 的数据,我在 C++ 中有这个实验代码:
void foo(const FunctionCallbackInfo<Value> &args) {
auto *isolate = args.GetIsolate();
auto data = args[3];
if (data->IsArrayBufferView()) {
auto arrbufview = Local<v8::ArrayBufferView>::Cast(data);
if (!arrbufview->HasBuffer()) {
// empty
return;
}
auto content = arrbufview->Buffer()->GetContents();
std::cout << content.Data()) << "\n\n" << content.ByteLength() << "\n";
}
}
现在我用像这样的脚本运行这段代码
foo(new Buffer("foobar"))
并且数据缓冲区并不指向包含foobar
我输入的内存区域,而是一些随机的其他区域,长度为 8192 字节。如何获取正确的数据?