Node.js C++ 使用 Nan.h 构建 JavaScript 对象
Node.js C++ 使用 Nan.h 构建 JavaScript 对象
本文将演示如何在 Node.js C++ 扩展中使用 Nan.h 构建 JavaScript 对象,并向其中添加属性。
代码示例
#include <nan.h>
using namespace v8;
void CreateObject(const Nan::FunctionCallbackInfo<Value>& info) {
// 创建一个空的 js 对象
Local<Object> obj = Nan::New<Object>();
// 添加 {x: 1, y: 2, type: 3} 属性
Nan::Set(obj, Nan::New('x').ToLocalChecked(), Nan::New<Number>(1));
Nan::Set(obj, Nan::New('y').ToLocalChecked(), Nan::New<Number>(2));
Nan::Set(obj, Nan::New('type').ToLocalChecked(), Nan::New<Number>(3));
// 返回创建的对象
info.GetReturnValue().Set(obj);
}
void Init(Local<Object> exports) {
// 导出 CreateObject 函数
Nan::Set(exports, Nan::New('createObject').ToLocalChecked(),
Nan::New<FunctionTemplate>(CreateObject)->GetFunction());
}
NODE_MODULE(addon, Init)
这段代码将会导出一个名为 createObject 的函数,该函数创建一个包含 {x: 1, y: 2, type: 3} 属性的对象,并将该对象返回。
JavaScript 调用
const addon = require('./build/Release/addon');
const obj = addon.createObject();
console.log(obj); // 输出: { x: 1, y: 2, type: 3 }
总结
通过使用 Nan.h,我们可以方便地在 Node.js C++ 扩展中构建 JavaScript 对象,并向其添加属性。这为我们提供了更大的灵活性,可以创建更复杂的功能,并与 JavaScript 代码进行交互。
原文地址: https://www.cveoy.top/t/topic/otaP 著作权归作者所有。请勿转载和采集!