想学习,node C++扩展方法,百度到的往往都过时了,还是直接看官网吧
看的过程中突然想将其记录下来,就算是一个尝试翻译吧,怎么理解就怎么写吧
文档路径:https://nodejs.org/api/addons.html
Hello World
我们用C++语言扩展node,完成的和以下javascript同样的功能:
module.exports.hello = function() { return 'world'; };
(很明显,就是调用hello,返回"world")
第一步,我们创建hello.cc文件:
// hello.cc
#include <node.h>
using namespace v8;
void Method(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = Isolate::GetCurrent();
HandleScope scope(isolate);
args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));
}
void init(Handle<Object> exports) {
NODE_SET_METHOD(exports, "hello", Method);
}
NODE_MODULE(addon, init)
所有Node扩展,我们必须导出一个初始化函数:
void Initialize (Handle<Object> exports);
NODE_MODULE(module_name, Initialize)
在
NODE_MODULE
之后没有分号,因为它不是一个函数(请参阅
node.h
)
噢,原来已经有了翻译,看来不需要多此一举了,链接送上:
http://nodeapi.ucdok.com/#/api/addons.html