1

在 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 字节。如何获取正确的数据?

4

0 回答 0