《深入浅出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などの変数を定義していませんが、使用できる原因です.
    //(function(exports, require, module, __filename, __dirname){// 
        var a = 123;
        exports.add = function(b){
            return a+b;
        }
        //...
    //});// 
また、nodeはモジュールのロードに対してキャッシュがあり、二次参照時のパフォーマンスオーバーヘッドを低減する(コアモジュールのキャッシュチェックはファイルモジュールのキャッシュチェックより優先する).
//////////////////////ノート:
  • nodejs特徴:単スレッド、データ駆動、非同期、高速、消費メモリ多
  • 劣勢:
  • デフォルトでは多核はサポートされていませんが、clusterで
  • を実現できます.
  • はサーバクラスタをサポートしないが、node-http-proxyで
  • を実現することができる.
  • は、nginxにより負荷均衡を実現する
  • .
  • 災害復旧は、node-clusterで
  • を実現することができます.