Nodeモジュールモジュールの詳しい説明

小云云
リリース: 2018-03-28 09:40:40
オリジナル
2094 人が閲覧しました

複雑な 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 モジュールと同じように使用されます。バイナリ モジュールはオペレーティング システムが提供するすべての機能を使用できますが、プラットフォーム間で使用するのは困難です。

関連する推奨事項:

JavaScript ES6のモジュール構文の詳細な説明


以上がNodeモジュールモジュールの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート