NodeJS и N-API

Я пытаюсь скомпилировать и использовать N-API Node JS c ++ addon. Код компилируется нормально, но во время выполнения я получаю следующую ошибку:

module.js:664
return process.dlopen(module, path._makeLong(filename));
^

Error: Module did not self-register.
at Object.Module._extensions..node (module.js:664:18)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/johngorter/Desktop/WASM/index2.js:1:77)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)

Странно то, что когда я заменяю код cc на «нормальный» код расширения C ++ (без N-API), все работает нормально.

Я работаю с NodeJS 8.9.2.

У кого-нибудь есть ключ?

ТИА,
Джон.

2

Решение

Вам не хватает некоторого кода, похожего на этот, который должен регистрировать функции, которые вы делаете доступными в JavsScript.

    Napi::Object Init( Napi::Env env, Napi::Object exports )
{
exports.Set(
Napi::String::New( env, "someFunctionName"),
Napi::Function::New( env, someFunctionName)
);

exports.Set(
Napi::String::New( env, "someOtherFunctionName"),
Napi::Function::New( env, someOtherFunctionName)
);

return exports;
}NODE_API_MODULE( yourModuleName, Init );
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]