|
从以下模式中解释了如何从 JavaScript 函数中读取参数,并返回结果。仅需要一个addon.cc文件:
- // addon.cc
- #include <node.h>
- using namespace v8;
- void Add(const FunctionCallbackInfo<Value>& args) {
- Isolate* isolate = Isolate::GetCurrent();
- HandleScope scope(isolate);
- if (args.Length() < 2) {
- isolate->ThrowException(Exception::TypeError(
- String::NewFromUtf8(isolate, "Wrong number of arguments")));
- return;
- }
- if (!args[0]->IsNumber() || !args[1]->IsNumber()) {
- isolate->ThrowException(Exception::TypeError(
- String::NewFromUtf8(isolate, "Wrong arguments")));
- return;
- }
- double value = args[0]->NumberValue() + args[1]->NumberValue();
- Local<Number> num = Number::New(isolate, value);
- args.GetReturnValue().Set(num);
- }
- void Init(Handle<Object> exports) {
- NODE_SET_METHOD(exports, "add", Add);
- }
- NODE_MODULE(addon, Init)
复制代码 可以用以下的 JavaScript 代码片段测试:
- // test.js
- var addon = require('./build/Release/addon');
- console.log( 'This should be eight:', addon.add(3,5) );
复制代码
|
|