这篇文章我们通过通过nodejs插件完成 函数工厂和对象工厂的例子。
首先看下面这段node.js代码 ,我们引用的my_node_addon插件需要导出
createFunc函数 和 createObject函数, 并且 createObject函数返回的对象包含
add和addCallback 两个加法函数
var addon = require('bindings')('my_node_addon.node');
//函数工厂
var func=addon.createFunc()(1);
console.log('Create Function ret:' ,func);
//对象工厂
var obj = addon.createObject();
//调用对象方法
console.log(obj.add(3, 12))
//调用对象的额回调方法
obj.addCallback(1, 2, (ret) => {
console.log(ret);
});
插件源码main.cpp如下
#include <napi.h>
/**
* 加法
* @param info
* @return
*/
Napi::Value Add(const Napi::CallbackInfo &info) {
//获取上下文环境
Napi::Env env = info.Env();
//如果参数少于2
if (info.Length() < 2) {
//js中丢出类型异常
Napi::TypeError::New(env, "Wrong number of argumen