《深入浅出nodejs》ノート
1199 ワード
第二章:モジュール機構
まとめ:nodejsはcomonjs規格に従って、comonjsはモジュール、I/O、バイナリ、ファイルなどの仕様を定義しています.その中で一番重要なのはnodejsモジュール仕様です.以下でnodejsのモジュールローディングをまとめます.nodejsのモジュールはコアモジュールとファイルモジュールに分けられています.コアモジュールはnodejsソースコードコンパイル中にあります.メモリにロードされているので、ロード速度が速いです.ファイルモジュールのように、パス解析、ファイル位置決め、コンパイルを経て実行するプロセスが必要です.経路解析は、識別子、相対経路、または絶対経路とすることができ、最終的には、require方法は真の経路に変換される.ファイルの位置付けにはファイル拡張子分析やパッケージディレクトリ解析などがありますが、ファイル拡張子が付いていない場合は.js.json.nodeの順で解析します.経路解析とファイルの位置付けを完了すると、nodeはモジュールオブジェクトを新規に作成します.この時、exports、moduleなどの変数があります.具体的なコンパイルの過程で、nodeはロードされたjsファイルに対して先頭のパッキングを行います.filename_udirnameなどの変数はfunction関数に伝達されます.これは私たちがjsファイルでmoduleなどの変数を定義していませんが、使用できる原因です.
//////////////////////ノート: nodejs特徴:単スレッド、データ駆動、非同期、高速、消費メモリ多 劣勢:デフォルトでは多核はサポートされていませんが、clusterで を実現できます.はサーバクラスタをサポートしないが、node-http-proxyで を実現することができる.は、nginxにより負荷均衡を実現する .災害復旧は、node-clusterで を実現することができます.
まとめ:nodejsはcomonjs規格に従って、comonjsはモジュール、I/O、バイナリ、ファイルなどの仕様を定義しています.その中で一番重要なのはnodejsモジュール仕様です.以下でnodejsのモジュールローディングをまとめます.nodejsのモジュールはコアモジュールとファイルモジュールに分けられています.コアモジュールはnodejsソースコードコンパイル中にあります.メモリにロードされているので、ロード速度が速いです.ファイルモジュールのように、パス解析、ファイル位置決め、コンパイルを経て実行するプロセスが必要です.経路解析は、識別子、相対経路、または絶対経路とすることができ、最終的には、require方法は真の経路に変換される.ファイルの位置付けにはファイル拡張子分析やパッケージディレクトリ解析などがありますが、ファイル拡張子が付いていない場合は.js.json.nodeの順で解析します.経路解析とファイルの位置付けを完了すると、nodeはモジュールオブジェクトを新規に作成します.この時、exports、moduleなどの変数があります.具体的なコンパイルの過程で、nodeはロードされたjsファイルに対して先頭のパッキングを行います.filename_udirnameなどの変数はfunction関数に伝達されます.これは私たちがjsファイルでmoduleなどの変数を定義していませんが、使用できる原因です.
//(function(exports, require, module, __filename, __dirname){//
var a = 123;
exports.add = function(b){
return a+b;
}
//...
//});//
また、nodeはモジュールのロードに対してキャッシュがあり、二次参照時のパフォーマンスオーバーヘッドを低減する(コアモジュールのキャッシュチェックはファイルモジュールのキャッシュチェックより優先する).//////////////////////ノート: