Latest web development tutorials

Node.jsのモジュールシステム

Node.jsのファイルが互いを呼び出すことができるようにするには、Node.jsのは簡単なモジュラーシステムを提供します。

モジュールは、Node.jsのアプリケーション、ファイル、およびモジュールの本質的な部分は、一から一です。 つまり、Node.jsのファイルがモジュールであり、このファイルには、JavaScriptコード、JSONまたはC / C ++の拡張機能をコンパイルすることができます。

モジュールを作成します。

Node.jsでは、モジュールは次のように私たちは、「main.jsファイル 'ファイルを作成するように、非常に簡単です作成します。

var hello = require('./hello');
hello.world();

上記の例で、コードは(デフォルトのsuffixのjsをNode.jsの、./カレントディレクトリ)現在hello.jsファイルディレクトリを導入しました( 'こんにちは./')が必要です。

Node.jsの輸出を提供し、輸出がオープンモジュールインターフェイスは、外部インタフェース、すなわち輸出目標捕捉モジュールから取得するためのモジュールを必要としている2つのオブジェクトを、必要とします。

次に、以下のように、hello.jsファイルを作成するために来ます。

exports.world = function() {
  console.log('Hello World');
}

上記の例では、オブジェクトアクセスインタフェースモジュールとして( 'こんにちは./')必要を介してロードmain.jsファイル内のこのモジュールは、あなたが直接輸出のオブジェクトのメンバーのhello.jsにアクセスすることができますが、世界の輸出をhello.js機能。

時には私たちはオブジェクトモジュールをパッケージ化したい、次のように、形式は次のとおりです。

module.exports = function() {
  // ...
}

例えば:

//hello.js 
function Hello() { 
	var name; 
	this.setName = function(thyName) { 
		name = thyName; 
	}; 
	this.sayHello = function() { 
		console.log('Hello ' + name); 
	}; 
}; 
module.exports = Hello;

だから、直接オブジェクトを取得します:

//main.js 
var Hello = require('./hello'); 
hello = new Hello(); 
hello.setName('BYVoid'); 
hello.sayHello(); 

唯一の変更は、インタフェースモジュールmodule.exports =ハローの使用は} {)exports.world =関数(置換されています。 外部のモジュールを参照する場合、こんにちはそのインタフェースオブジェクトのオブジェクトではなく、元の輸出よりも、出力そのものになることです。


どこにサーバーモジュールを配置します

おそらくあなたは、私たちがモジュールコードで使用されていることに気づきました。 このように:

var http = require("http");

...

http.createServer(...);

Node.jsのは、「HTTP」モジュールと呼ばれる機能が付属して、私たちは、コード内のローカル変数に値を返すように頼みます。

これは、HTTPモジュールは、オブジェクトを提供し、すべてのパブリックメソッドを持つローカル変数に私たちをもたらします。

Node.jsの方法は、ファイルの検索戦略を必要とする次のとおりです。

必要とするが、4クラスモジュール(プライマリモジュールと三つのモジュールファイル)のNode.jsがあるので、この方法は非常に簡単ですが、それは非常に複雑な負荷があるの内側に、その優先度が異なるロードします。 以下に示すように:

nodejs-必要

ファイルキャッシュモジュールからロード

異なる優先順位ネイティブモジュールおよびファイル・モジュールにもかかわらず、それは、キャッシュモジュールから既存のロード・モジュール・ファイルよりも優先されません。

ネイティブモジュールからのロード

優先ファイルキャッシュモジュール後のネイティブモジュールの優先順位。 優先チェックネイティブモジュールリスト内のモジュールかどうか、ファイル名を解析した後の方法を必要とします。 ディレクトリ内のhttp / http.js / http.node / http.jsonファイルがあるものの、HTTPモジュールでは、例えば、(「HTTP」)を必要とするがファイルからロードされませんが、ネイティブモジュールからロードされました。

ネイティブモジュールは、また、優先的にキャッシュからロードされ、バッファゾーンを有しています。 バッファは以前にロードされていない場合は、ネイティブモジュールのロードがロードされ、実行されます呼び出します。

ファイルから読み込み

Node.jsの分析メソッドの着信パラメータを必要とし、前のセクションのファイルシステムから実際のファイル、コンパイルのロード処理とパッケージングの詳細をロードするとき、ファイルはネイティブモジュールのキャッシュモジュールに存在し、ないていない場合私たちも知っておく価値のいくつかの詳細を持っているファイル・モジュールを、見つけるために詳細にプロセスを説明する場合には、導入されています。

転送方法を必要とすると、以下のパラメーターを受け入れます。

  • HTTP、FS、パスなど、ネイティブモジュール。
  • ./modまたは../mod、相対パスのファイル・モジュール。
  • / Pathtomodule / MOD、ファイル・モジュールの絶対パス。
  • モッズ、非ネイティブモジュールファイルモジュール。