node.js 调用 C/C++扩展
1.新建一个项目目录hello 2.在该目录下创建一个存放C/C++源代码的目录src 3.编写C/C++源代码hello.cc
// hello.cc
#include <node.h>
namespace demo {
using v8::FunctionCallbackInfo;
using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::String;
using v8::Value;
void Method(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
args.GetReturnValue().Set(String::NewFromUtf8(isolate, "Hello World"));
}
void init(Local<Object> exports) {
NODE_SET_METHOD(exports, "hello", Method);
}
NODE_MODULE(addon, init)
} // namespace demo
4.在项目hello目录下,创建binding.gyp编译配置文件
{
'targets': [
{
'target_name': 'hello',
'sources': [
'src/hello.cc'
],
'conditions': [
['OS == "win"',
{
'libraries': ['-lnode.lib']
}
]
]
}
]
}
5.在项目hello目录下,编写测试代码test.js
var addon = require('./build/Release/hello.node');
console.log(addon.hello());
6.使用node-gyp命令配置项目
node-gyp configure
7.使用node-gyp命令编译项目
node-gyp build
8.项目hello目录下,运行测试代码
node test.js
显示
Hello World
成功使用node.js调用C/C++代码