c++编写node的addon(3) --向addon传参

来源:互联网 发布:医药中标数据网 编辑:程序博客网 时间:2024/05/16 15:50

1.环境

Ubuntu 14.04

node 4.5.0

node-gyp 3.4.0

2.项目

新建项目,加入组件nan和bindings

方法一、在项目文件的node_modules中复制组件nan和bindings的全部代码包;

方法二、在package.json的dependencies中加入这两个组件,用nmp安装

3.c++源码

//addon.cc#include <nan.h>void Add(const Nan::FunctionCallbackInfo<v8::Value>& info) {  if (info.Length() < 2) {    Nan::ThrowTypeError("Wrong number of arguments");    return;  }  if (!info[0]->IsNumber() || !info[1]->IsNumber()) {    Nan::ThrowTypeError("Wrong arguments");    return;  }  double arg0 = info[0]->NumberValue();  double arg1 = info[1]->NumberValue();  v8::Local<v8::Number> num = Nan::New(arg0 + arg1);  info.GetReturnValue().Set(num);}void Init(v8::Local<v8::Object> exports) {  exports->Set(Nan::New("add").ToLocalChecked(),               Nan::New<v8::FunctionTemplate>(Add)->GetFunction());}NODE_MODULE(addon, Init)
4.binding.gyp

{  "targets": [    {      "target_name": "addon",      "sources": [ "addon.cc" ],      "include_dirs": [        "<!(node -e \"require('nan')\")"      ]    }  ]}
5.js源码

//addon.jsvar addon = require('bindings')('addon.node')console.log('This should be eight:', addon.add(3, 5))
6.编译addon

cd到源码目录下

node-gyp configure build 
7.执行

cd 到源码目录下

node hello.js  






0 0
原创粉丝点击