探索 Node.js 与 C++ 的绑定:使用 node-addon-api
以下是一个使用node-addon-api
创建Node.js与C++相结合的简单例子。
首先,确保你已经安装了node-gyp
和node-addon-api
。
npm install -g node-gyp
npm install node-addon-api
然后,创建一个binding.gyp
文件来定义如何编译你的C++代码:
{
"targets": [
{
"target_name": "addon",
"sources": [ "src/addon.cc" ],
"include_dirs": ["<!@(node -p \"require('node-addon-api').include\")"],
"dependencies": ["<!(node -p \"require('node-addon-api').gyp\")"],
"defines": [ "NAPI_DISABLE_CPP_EXCEPTIONS" ]
}
]
}
在src
目录下创建一个addon.cc
文件,包含以下代码:
#include <napi.h>
Napi::String Method(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
return Napi::String::New(env, "Hello world!");
}
Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set("hello", Napi::Function::New(env, Method));
return exports;
}
NODE_API_MODULE(addon, Init)
最后,在项目的根目录下运行node-gyp
来编译你的C++代码:
node-gyp configure build
这将生成一个可以在Node.js中使用的.node
文件。
在Node.js中使用这个模块,创建一个index.js
文件:
const addon = require('./build/Release/addon.node');
console.log(addon.hello()); // 输出: Hello world!
确保路径与你实际生成的.node
文件的位置相匹配。运行node index.js
来查看结果。
评论已关闭