Node.js は、高性能でスケーラブルな Web アプリケーションを構築するためのオープン ソースの Javascript ランタイムです。ブラウザとは異なり、Node.js では Javascript をサーバー側環境で実行できるため、JavaScript はより包括的なプログラミング言語になります。
Node.js には、非同期 I/O 操作、イベント駆動型など、多くの優れた機能があります。これらの機能により、Node.js は大量の同時リクエストを効率的に処理できます。ただし、メモリ管理やハードウェア レベル API の呼び出しなど、Node.js では実装できない特定の機能を実装するために、C または C を使用する必要がある場合があります。この場合、C コードを使用して Node.js を拡張するのが良い選択になる可能性があります。
Node.js は、C または C++ で機能拡張を記述するために使用できる「C プラグイン」と呼ばれる機能を提供します。この記事では、C コードを使用して Node.js プラグインを作成する方法を学びます。
node-gyp は、Node.js プラグインを構築するためのツールです。 C コードを使用して Node.js プラグインを作成するには、まず、node-gyp をインストールする必要があります。
node-gyp をインストールするには、次のコマンドを実行します:
npm install -g node-gyp
Node.js を C コードで拡張する前に、A Cモジュールを最初に作成する必要があります。 node-gyp を使用してテンプレートを生成し、それを変更できます。
テンプレートを生成するには、次のコマンドを実行します。
node-gyp configure
これにより、binding.gyp ファイルとディレクトリ構造が生成されます。
生成されたディレクトリ構造には、文字列「world」を返す単純な関数を含む「hello.cc」というファイルがあります。
このテンプレートを使用して独自のモジュールを作成できます。
ここで、C コードの作成を開始できます。
文字列「Hello, World!」を出力する「myaddon」というプラグインを Node.js に作成するとします。以下は私たちのコードです:
#include <node.h> using namespace v8; void Method(const FunctionCallbackInfo<Value>& args) { Isolate* isolate = args.GetIsolate(); args.GetReturnValue().Set(String::NewFromUtf8(isolate, "Hello, World!")); } void init(Local<Object> exports) { NODE_SET_METHOD(exports, "hello", Method); } NODE_MODULE(addon, init)
ここでは、Node.js が提供する v8 名前空間と Isolate クラスを使用して、C コードを Node.js に統合します。
この簡単な例では、FunctionCallbackInfo インスタンスを引数として受け取り、そのインスタンスを使用して生成された文字列を返す Method という関数を定義します。また、NODE_SET_METHOD マクロを使用して、メソッド関数を Node.js オブジェクトのプロパティにアタッチします。最後に、NODE_MODULE マクロを使用してコードを Node.js にエクスポートし、「addon」という識別子を付けます。
C コードを作成したら、binding.gyp ファイルを使用して、node-gyp にコンパイル方法を指示する必要があります。コード。
以下は単純な binding.gyp ファイルです:
{ "targets": [ { "target_name": "myaddon", "sources": [ "hello.cc" ] } ] }
ここでは、ターゲット名「myaddon」でターゲットを定義し、ソース ファイルとして hello.cc ファイルを使用します。
これで、node-gyp を使用してプラグインをコンパイルし、Node.js にロードできるようになります。
まず、次のコマンドを使用してプラグインをコンパイルします。
node-gyp build
これにより、必要なファイルを含むプロジェクト ディレクトリに「build」というディレクトリが生成されます。これで、次の方法で Node.js にプラグインをロードできます:
var addon = require('./build/Release/myaddon'); console.log(addon.hello());
これにより、文字列「Hello, World!」がコンソールに出力されます。
概要
この記事では、C コードを使用して Node.js プラグインを作成する方法を学びました。 node-gyp を使用してプラグインを構築すると、C または C コードを Node.js プロジェクトに簡単に統合できるため、Node.js の機能が拡張され、Node.js では解決できないいくつかの問題が解決されます。
以上がC コードを使用して Node.js プラグインを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。