Nan :: ObjectWrap到Napi :: Object Wrap无法访问JavaScript中的属性

时间:2018-07-24 08:49:27

标签: c++ node.js

我已将代码从Nan修改为Napi(C ++插件)。此代码使用ObjectWrap类。 在使用Nan之前,当我尝试获取node-addon返回的对象的属性时,它会起作用。

console.log(Object.keys(result)); 
[ 'bool', 'string', 'int', 'float', 'vtype' ]

现在,使用Napi,当我尝试相同的命令时会得到:

[]

但是对属性的访问仍然有效:

console.log(result.bool);
false

我的初始化代码:

Napi::Object JSVariant::Init(Napi::Env env, Napi::Object exports)
{
    Napi::HandleScope scope(env);
    Napi::Function ctor = DefineClass(env, "JSVariant", {InstanceAccessor("vtype", &JSVariant::GetVTypeValue, &JSVariant::SetVTypeValue), InstanceAccessor("float", &JSVariant::GetFltValue, &JSVariant::SetFltValue), InstanceAccessor("int", &JSVariant::GetIntValue, &JSVariant::SetIntValue), InstanceAccessor("string", &JSVariant::GetStringValue, &JSVariant::SetStringValue), InstanceAccessor("bool", &JSVariant::GetBoolValue, &JSVariant::SetBoolValue)});

    constructor = Napi::Persistent(ctor);
    constructor.SuppressDestruct();
    exports.Set("JSVariant", ctor);
    return exports;
}

有没有办法用Napi获得Nan的结果?

0 个答案:

没有答案