阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js C++插件 对象工厂

      Node.js C++插件 对象工厂

      插件可从 C++ 函数中创建并返回新的对象,如以下例子所示。 一个带有 msg 属性的对象被创建并返回,该属性会输出传入 createObject() 的字符串:

      // addon.cc
      #include <node.h>
      
      namespace demo {
      
      using v8::FunctionCallbackInfo;
      using v8::Isolate;
      using v8::Local;
      using v8::Object;
      using v8::String;
      using v8::Value;
      
      void CreateObject(const FunctionCallbackInfo<Value>& args) {
        Isolate* isolate = args.GetIsolate();
      
        Local< Object> obj = Object::New(isolate);
        obj->Set(String::NewFromUtf8(isolate, "msg"), args[0]->ToString());
      
        args.GetReturnValue().Set(obj);
      }
      
      void Init(Local< Object> exports, Local< Object> module) {
        NODE_SET_METHOD(module, "exports", CreateObject);
      }
      
      NODE_MODULE(NODE_GYP_MODULE_NAME, Init)
      
      }  // namespace demo
      

      在 JavaScript 中测试它:

      // test.js
      const addon = require('./build/Release/addon');
      
      const obj1 = addon('hello');
      const obj2 = addon('world');
      console.log(obj1.msg, obj2.msg);
      // 打印: 'hello world'
      

      更多内容请参考:Node.js C++插件,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录