C++ node.js アドオンを作成するときの Init の 1 引数形式と 2 引数形式の違いを誰か説明できますか?
void Init(Local<Object> exports) {}
void Init(Local<Object> exports, Local<Object> module) {}
C++ node.js アドオンを作成するときの Init の 1 引数形式と 2 引数形式の違いを誰か説明できますか?
void Init(Local<Object> exports) {}
void Init(Local<Object> exports, Local<Object> module) {}
一般に、常に 2 番目のメソッド テンプレートを使用できますが、exports
別module
のオプションを提供することもできます。
次の例を使用します。
void Init(Local<Object> exports) {
NODE_SET_METHOD(exports, "test", MyTest);
}
test
exports オブジェクトに関数を「関数プロパティ」として追加します。
したがって、次の JS コードを使用できます。たとえば、test
exports オブジェクトの関数を使用して stdout に出力します。
const test = require('./path/to/node/addon/addon.node');
test.test('my message');
一方で:
void Init(Local<Object> exports, Local<Object> module) {
NODE_SET_METHOD(module, "exports", MyDummyCallback);
}
完全なモジュール ( module
) を提供し、エクスポートを上書きできるようにします。JS から次のようなものを呼び出すことができます。
const test = require('./path/to/node/addon/addon.node');
test('test');
test
オーバーライドされたモジュールを使用して、メッセージを tty に出力します。