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 代码进行交互。

Node.js C++ 使用 Nan.h 构建 JavaScript 对象

原文地址: https://www.cveoy.top/t/topic/otaP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录