Nodeモジュールの深い理解

亚连
亚连オリジナル
2018-05-29 09:18:031705ブラウズ

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

上記は私があなたのためにまとめたものです。

関連記事:

JSで配列以外のオブジェクトを配列に変換する方法まとめ

js+ca​​nvasでスライディングパズル検証コード機能を実装

赤黒ツリー挿入の詳しい解説と例JavaScript実装メソッドの例

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。