gpt4 book ai didi

node.js - nodejs的napi模块没有 self 注册

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:28 27 4
gpt4 key购买 nike

当我尝试测试nodejs N-API 模块时,出现错误:
我的 addon.c 文件是:

#include <node_api.h>

napi_value HelloMethod (napi_env env, napi_callback_info info) {
napi_value world;
napi_create_string_utf8(env, "world", 5, &world);
return world;
}

void Init (napi_env env, napi_value exports, napi_value module, void* priv) {
napi_property_descriptor desc = { "hello", 0, HelloMethod, 0, 0, 0, napi_default, 0 };
napi_define_properties(env, exports, 1, &desc);
}

NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)

我的绑定(bind).gyp 文件是:

{
"targets": [
{
"target_name": "addon",
"source": ["addon.c"]
}
]
}

当我使用 require('./build/Release/addon') 调用插件模块时,错误信息是:

Error: Module did not self-register.
at Object.Module._extensions..node (internal/modules/cjs/loader.js:707:18)
at Module.load (internal/modules/cjs/loader.js:589:32)
at tryModuleLoad (internal/modules/cjs/loader.js:528:12)
at Function.Module._load (internal/modules/cjs/loader.js:520:3)
at Module.require (internal/modules/cjs/loader.js:626:17)
at require (internal/modules/cjs/helpers.js:20:18)

有人可以帮助我吗?坦克

最佳答案

似乎较新版本的 node-addon-api 已更改其模块注册/导出的 API。您正在使用的数据类型也将不再起作用。

现在已经这样了

#include <napi.h>

Napi::String HelloMethod(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
return Napi::String::New(env, "world");
}

Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set(Napi::String::New(env, "hello"),
Napi::Function::New(env, HelloMethod));
return exports;
}

NODE_API_MODULE(addon, Init)

这适用于 Node 11.10.1 和 node-addon-api 1.6.2。

关于node.js - nodejs的napi模块没有 self 注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50460250/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com