1

我使用 Nan 研究本机 Node 插件。

因此,我尝试使用以下代码将字符串数组返回给 Node:

NAN_METHOD(open) {
    Local<Array> v8Array = Nan::New<Array>();
    std::string str = "erwer";
    v8Array->Set(0, Nan::New<String>(str.c_str()) );
    //v8Array->Set(0, Nan::New<Integer>(12) );
    info.GetReturnValue().Set(v8Array);
}

但它没有被编译:

error: no matching function for call to ‘v8::Array::Set(int, Nan::imp::MaybeFactoryBase<v8::String>::return_t)’ v8Array->Set(0, Nan::New<String>(str.c_str()) );

但是将项目添加为整数(注释行)可以正常工作。为什么我不能将字符串添加到数组中?

4

1 回答 1

6

所以,最后我意识到第二个参数如果是一个字符串应该用 ToLocalChecked() 包装:

v8Array->Set(i, Nan::New<String>(results[i].c_str()).ToLocalChecked() );
于 2015-10-06T13:48:57.060 回答