PS:最初にノード6.2.1をアップグレードしてください。ノードアップグレードコマンドnpmインストール-gn; n stable.node.js拡張機能は、c/c ++で記述され、node.js関数require()関数を介して読み込まれた動的リンクライブラリです。通常のnode.jsモジュールを使用するようなものです。主にノードとC/C ++ライブラリ間のインターフェイスを提供します。
このようにして、メソッドまたは関数がノード拡張機能を介して実装されている場合、いくつかのモジュールとインターフェイスの知識を含む非常に複雑になります。
•V8:C ++ライブラリを介して実装を実装するJavaScript.v8は、オブジェクト作成メカニズム、コールバック機能などを提供します。v8APIドキュメントのほとんどはV8.hヘッダーファイルにあります。 V8オンラインドキュメントをクリックしてください
•Libuv:node.jsワーカースレッドと非同期動作を実装するイベントループ用ライブラリ。また、ファイルシステム、ソケット、タイマー、システムイベントとの相互作用など、すべての主要なオペレーティングシステムシステムへのPOSIXのようなアクセスを単にすべての主要なオペレーティングシステムシステムに単純にアクセスできるクロスプラットフォーム抽象ライブラリとして機能します。 Libuvは、より複雑な非同期に使用できる抽象的なPthreadsのようなスレッドも提供します。 node.jsのC/C ++拡張機能は、標準のイベントループを超える必要があります。プラグインの著者は、I/Oイベントループのブロックを避け、Libuvの非ブロッキングシステム操作、ワーカースレッド、ユーザー定義のスレッドを介してタスク集約型の作業を完了する方法について考えることを奨励しています。
•node.jsビルトインライブラリ:node.js自体は、多数のC/C ++拡張APIを使用します。 C/C ++拡張ノードの最も重要なクラス:ObjectWrap
•node.jsのopenssl:node.jsの他のライブラリなど、多数の静的リンクライブラリは、そのソースディレクトリツリーの下のDEPSディレクトリにあります。詳細については、追加情報についてはnode.js独自の依存関係を参照してください。公式node.js拡張機能ライブラリの例をクリックしてください。これは、node.jsのc/c ++拡張機能ライブラリを作成する出発点となる場合があります。 v8とopensSLクラスのみが、ノードC/C ++拡張機能で頻繁に使用されることがよくあります。
ノードC/C ++拡張爆弾 - 最新の例HelloWorld
この例は、node.jsバージョン番号v5.0以上に適用されます。
// hello.jsconst addon = require( './ build/release/addon'); console.log(addon.hello()); // 'world' // hello.cc#include <node.h> #include <v8.h> namespace demo {v8 :: functioncallbackinfo;を使用してv8 :: asealteを使用して; args.getisolate(); args.getReturnValue()。set(string :: newFromutf8(aseporate、 "world"));} void init(local <object> exports){node_set_method(exports、 "hello"、method);} node_module(addon、init)} [{"Target_name": "addon"、 "sources":["hello.cc"]}]}node-gypコマンド
コードコピーは次のとおりです。
node-gyp構成ビルド
上記は、編集者が紹介したnode.jsアドオン翻訳(C/C ++拡張機能)の関連知識です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!