在Node.JS Addon中我想处理来自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
I放入的memoery区域,而是一些长度为8192字节的随机区域。如何获得正确的数据?