nodeのモジュール

4463 ワード

モジュール
少し大きなプログラムを作成するときは、コードをモジュール化するのが一般的です.NodeJSでは、一般的にコードを異なるJSファイルに合理的に分割し、各ファイルはモジュールであり、ファイルパスはモジュール名である.
各モジュールを作成する場合、requireexportsmoduleの3つの予め定義された変数が使用できる.
requirerequire関数は、現在のモジュールにおいて他のモジュールをロードして使用し、モジュール名を入力し、モジュールのオブジェクトを導出するために使用されます.モジュール名は、相対パス(./で始まる)または絶対パス(/またはC:のようなディスクで始まる)を使用することができる.また、モジュール名の.js拡張子は省略することができる.以下は一例です.
var foo1 = require('./foo');
var foo2 = require('./foo.js');
var foo3 = require('/home/user/foo');
var foo4 = require('/home/user/foo.js');

// foo1 foo4               。
また、JSONファイルは以下のようにロードして使用することができます.
var data = require('./data.json');
exportsexportsオブジェクトは、モジュール共有方法および属性を導出するために現在のモジュールの導出対象である.他のモジュールがrequire関数で現在のモジュールを使用している場合に得られるのが、現在のモジュールのexportsオブジェクトです.以下の例では、公有法が導出される.
exports.hello = function () {
    console.log('Hello World!');
};
modulemoduleオブジェクトを介して、現在のモジュールに関するいくつかの関連情報にアクセスすることができますが、最も多い用途は、現在のモジュールの導出オブジェクトを置き換えることです.たとえばモジュール導出オブジェクトは標準的には普通のオブジェクトです.関数に変更するには、次のような方法があります.
module.exports = function () {
    console.log('Hello World!');
};
以上のコードでは、モジュールのデフォルトのエクスポートオブジェクトを関数に置き換えます.
モジュール初期化
一つのモジュールのJSコードはモジュールが初めて使用された時に一回だけ実行され、実行中にモジュールのエクスポートオブジェクトを初期化します.その後、キャッシュされたエクスポートオブジェクトは、繰り返し利用される.
メインモジュール
コマンドラインパラメータをNodeJSに渡すことで、プログラムを起動するモジュールをメインモジュールと呼びます.メインモジュールは、プログラム全体を構成する他のモジュールのスケジューリングを行います.例えば、以下のコマンドでプログラムを起動すると、main.jsがメインモジュールです.
$ node main.js
完全な例
例えば以下のディレクトリがあります.
- /home/user/hello/
    - util/
        counter.js
    main.js
counter.jsの内容は以下の通りである.
var i = 0;

function count() {
    return ++i;
}
exports.count = count;
このモジュールの内部には、プライベート変数iが定義され、exportsオブジェクトで公開方法countが導出されている.
メインモジュールmain.jsの内容は以下の通りである.
var counter1 = require('./util/counter');
var    counter2 = require('./util/counter');

console.log(counter1.count());
console.log(counter2.count());
console.log(counter2.count());
このプログラムを実行した結果は以下の通りです.
$ node main.js
1
2
3
counter.jsは、requireによって二回も初期化されていないことが分かる.
バイナリモジュール
一般的にはJSモジュールを使っていますが、ノードJSもC/C++を使ってバイナリモジュールの作成をサポートしています.コンパイルされたバイナリモジュールは、ファイルの拡張子が.nodeである以外は、JSモジュールの使用方法と同じである.バイナリモジュールはオペレーティングシステムが提供するあらゆる機能を使用でき、無限の潜在能力を持っていますが、フロントエンドの学生にとっては作成が難しく、プラットフォームをまたぐことができないので、本教程のカバー範囲内ではありません.
結び目
この章ではNodeJSに関する基本概念と使い方を紹介します.
  • NodeJSは、任意のオペレーティングシステムにおいて、NodeJSをインストールする際に、本質的に行うことは、NodeJS実行プログラムをディレクトリにコピーし、システムPATH環境変数の下で、端末の下でnodeコマンドを使用することができるようにするJSスクリプト解析器です.
  • 端末で直接入力nodeコマンドはコマンドインタラクションモードに入ることができ、正規表現のようないくつかのJSコードセグメントをテストするのに適しています.
  • NodeJSはCMDモジュールシステムを使用して、メインモジュールはプログラムのエントリポイントとして、すべてのモジュールは実行中に一回だけ初期化されます.
  • JSモジュールが需要を満たすことができない限り、安易にバイナリモジュールを使用しないでください.そうでなければ、ユーザーは悲鳴を上げます.