ホームページ > 記事 > ウェブフロントエンド > Nodeモジュールモジュールの詳しい説明
複雑な Web アプリケーションを開発する場合、通常は各関数を分割し、異なるファイルにカプセル化し、必要に応じてファイルを参照する、つまりコードをモジュール管理する必要があります。ほとんどすべてのプログラミング言語には、Java のパッケージや C# のアセンブリなど、独自のモジュール編成方法があり、Node は CommonJS モジュール仕様を採用しています。
モジュール仕様
CommonJS は、ブラウザ外で実行される JS を標準化することを目的としており、多数の JS の問題 (グローバルな名前の競合など) を解決してきました。 Node の CommonJS 実装では、各モジュールは個別の JS ファイルにカプセル化されます。つまり、ファイルはモジュールであり、ファイル パスはモジュール名です。各モジュールを作成する場合、次の 3 つの事前定義変数を使用できます:
require()
この関数は、現在のモジュール内の他のモジュールをロードして使用するために使用され、モジュール名を渡し、モジュール エクスポート オブジェクトを返します。モジュール名には、相対パス (./ で始まる) または絶対パス (/ で始まる、または C: などのドライブ文字) を使用できます。また、モジュール名の拡張子 .js は省略できます。このとき、Node は同じ名前のフォルダーを探します。見つからない場合は、同じ名前の js ファイルを探します。この関数を使用して JSON ファイルをロードして使用することもできますが、.json 拡張子は省略できません。
exports
このオブジェクトは、現在のモジュールのエクスポート オブジェクトであり、モジュールのパブリック メソッドとプロパティをエクスポートするために使用されます。デフォルトは空のオブジェクト {} です。他のモジュールが require() 関数を通じて現在のモジュールを使用する場合、現在のモジュールのエクスポート オブジェクトを取得します。パブリック メソッドは、次のコードでエクスポートされます:
exports.hello = function() { console.log("Hello World!"); };
module
このオブジェクトは、現在のモジュールのメタデータとその他の関連情報を提供するために使用されますが、最も便利なのは、exports 属性を使用して現在のモジュールのエクスポート オブジェクトを置き換えます。たとえば、モジュールのエクスポート オブジェクトはデフォルトでは通常のオブジェクトです。次のメソッドを使用して関数に変換できます:
module.exports = function() { console.log("Hello World!"); };
注: 上記のメソッドを使用すると、エクスポート オブジェクトへの変更はすべて無視されます。 !
モジュールの初期化
モジュール内のJSコードは、モジュールが初めて使用されるときに一度だけ実行され、モジュールのエクスポートされたオブジェクトは実行中に初期化されます。後で、キャッシュされたエクスポート オブジェクトが再利用されます。
test.jsでモジュールを定義する
//定义私有变量 var name = ""; function setName(n) { name = n; } function logName() { console.log(name); } //导出公有方法 exports.setName = setName; exports.logName = logName;
mainにテストモジュールをロードする
//加载test模块 var test1 = require("./test.js"), test2 = require("./test.js"); //使用test1 test1.setName("Neo"); //使用test2 test2.logName(); //Neo
require()が何度呼び出されても、同じモジュールがロードされるだけであることがわかります参照が 1 回取得され、複数回取得された場合、実際には同じインスタンスになります。
メインモジュール
プログラムを開始するためにコマンドラインパラメータを通じてノードに渡されるモジュールは、メインモジュールと呼ばれ、アプリケーション全体を構成する他のモジュールが連携して動作するようにスケジュールを設定します。たとえば、次のコマンド ラインでプログラムを開始する場合、main.js がメイン モジュールになります:
$ node main.js
バイナリ モジュール
Node は JS を使用してモジュールを作成できるだけでなく、C の使用もサポートします。 /C++ でバイナリ モジュールを書き込みます。 コンパイル後 バイナリ モジュールは、ファイル拡張子が .node であることを除いて、JS モジュールと同じように使用されます。バイナリ モジュールはオペレーティング システムが提供するすべての機能を使用できますが、プラットフォーム間で使用するのは困難です。
関連する推奨事項:
以上がNodeモジュールモジュールの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。