将字符串设置为v8阵列

将字符串设置为v8阵列

问题描述:

我使用Nan调查本地Node附件。将字符串设置为v8阵列

所以我想返回到节点串用下面的代码的数组:

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()));

但添加的项作为整数(注释行)正常工作。 为什么我不能向数组添加字符串?

所以,最后我意识到的是一个字符串的情况下,第二个参数应与ToLocalChecked()被包裹:

v8Array->Set(i, Nan::New<String>(results[i].c_str()).ToLocalChecked());