Использование protobuf из родного аддона C ++ для Node и возврат к V8 - PullRequest
0 голосов
/ 26 марта 2019

Недавно я играл с протоколными буферами Google (protobuf) в моем родном аддоне C ++ для Node.Моя путаница:

Как я могу вернуть свой объект protobuf из моего кода C ++ в землю Javascript, где он может быть исследован как обычный объект JS?Возможно ли это?

В настоящее время я использую неэффективный подход к строковому преобразованию в C ++ и синтаксическому анализу в Javascript, например:

string stringified;
google::protobuf::util::MessageToJsonString(protobuf, &stringified, options);
Local<Value> argv[] = { Nan::Null(), v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), stringified.c_str()) };
Nan::Call(*callback, Nan::GetCurrentContext()->Global(), sizeof(argv)/sizeof(*argv), argv);

Очевидно, что это не идеально и не соответствует цели.Как правильно вернуть такой объект в V8?

...