如何混合本机插件和模块?

问题描述 投票:0回答:1

我使用node-addon-api为C ++库开发了一个包装器。我想用这些C ++函数导出一些节点函数。

某些功能可以用Javascript编码,而无需用C ++编码。

Napi::Object Init(Napi::Env env, Napi::Object exports) {
    exports.Set(Napi::String::New(env, "hello"), Napi::Function::New(env, Hello));
    return exports;
}

我们如何混合使用napi和nodeJs函数?

node.js node.js-addon
1个回答
1
投票

混合“本机”功能和纯JS功能没问题。

假设您的项目中有一个index.js作为主文件

package.json

{
  "name": "mixedModule",
  "version": "1.0.0",
  "description": "A mixture of functions created via C++ or JS",
  "main": "index.js",
  "typings": "index.d.ts",
  "scripts": {
  ...
  }
}

您可以自由决定要(重新)导出哪些功能:

const nativeModule = require("bindings")("myModule.node");

function jsFunction() {
    ...
}

module.exports = {
  nativeFunction: nativeModule.nativeFunction,
  jsFunction
}
© www.soinside.com 2019 - 2024. All rights reserved.