NodeJS基礎:モジュール
2152 ワード
少し大きなプログラムを作成するときは、コードをモジュール化するのが一般的です.NodeJSでは、一般的にコードを異なるJSファイルに合理的に分割し、各ファイルはモジュールであり、ファイルパスはモジュール名である.各モジュールの作成には、require、exports、moduleの3つの予め定義されている変数があります.
require
require関数は、現在のモジュールにおいて他のモジュールをロードして使用し、モジュール名を入力し、モジュールのあちこちのオブジェクトを返します.また、モジュール名のjs拡張子は省略することができます.以下は一例です.
exportオブジェクトは現在のモジュールの導出対象であり、モジュールの共有方法と属性を導出するために使用される.他のモジュールはrequire関数で現在のモジュールを使用した時に得られたのが現在のモジュールのexportオブジェクトです.以下の例は共有方法を導出した.
moduleオブジェクトを通じて現在のモジュールに関するいくつかの情報にアクセスできますが、最も多くの用途は現在のモジュールのエクスポートオブジェクトを置き換えることです.たとえばモジュール導出オブジェクトは標準的には普通のオブジェクトです.関数に変更するには、次のような方法があります.
一つのモジュールのJSコードはモジュールが初めて使用された時に一回だけ実行され、実行中にモジュールのエクスポートオブジェクトを初期化します.その後、キャッシュされたエクスポートオブジェクトは、繰り返し利用される.
メインモジュール
コマンドラインパラメータをNodeJSに渡すことで、プログラムを起動するモジュールをメインモジュールと呼びます.メインモジュールは、プログラム全体を構成する他のモジュールのスケジュールを担当します.例えば以下のコマンドでプログラムを起動すると、メインモジュールとなります. NodeJSはCMDモジュールシステムを使用して、メインモジュールはプログラムのエントリポイントとして、すべてのモジュールは実行中に一回だけ初期化されます. 七日間学会nodeJS
require
require関数は、現在のモジュールにおいて他のモジュールをロードして使用し、モジュール名を入力し、モジュールのあちこちのオブジェクトを返します.また、モジュール名のjs拡張子は省略することができます.以下は一例です.
var fool = require('./foo');
var foo2 = require ('./foo.js');
var foo3 = require('/home/user/foo');
var foo4 = require('/home/user/foo.js');
// 4
exportsexportオブジェクトは現在のモジュールの導出対象であり、モジュールの共有方法と属性を導出するために使用される.他のモジュールはrequire関数で現在のモジュールを使用した時に得られたのが現在のモジュールのexportオブジェクトです.以下の例は共有方法を導出した.
exports.hello = function(){
console.log('Hello World!');
}
//exports , , , :
exprots = function(){ ... };
//require {}, fn
modulemoduleオブジェクトを通じて現在のモジュールに関するいくつかの情報にアクセスできますが、最も多くの用途は現在のモジュールのエクスポートオブジェクトを置き換えることです.たとえばモジュール導出オブジェクトは標準的には普通のオブジェクトです.関数に変更するには、次のような方法があります.
module.exports=function(){
console.log('Hello World!');
}
// ,
モジュール初期化一つのモジュールのJSコードはモジュールが初めて使用された時に一回だけ実行され、実行中にモジュールのエクスポートオブジェクトを初期化します.その後、キャッシュされたエクスポートオブジェクトは、繰り返し利用される.
メインモジュール
コマンドラインパラメータをNodeJSに渡すことで、プログラムを起動するモジュールをメインモジュールと呼びます.メインモジュールは、プログラム全体を構成する他のモジュールのスケジュールを担当します.例えば以下のコマンドでプログラムを起動すると、メインモジュールとなります.
node main.js
完全な例は、例えば以下のディレクトリがあります.-/home/user/hello/
main.js
-util/
counter.js
その中のconunter.jsの内容は以下の通りです.var i=0;
function count(){
reutrn ++i;
}
exports.count=count;
// i, exports count.
メインモジュールmain.jsの内容は以下の通りです.var counter1 = require('./util/counter');
var counter2= require('./util/counter');
console.lg(counter1.count());
console.log(counter2.count());
console.log(counter2.count());
このプログラムを実行した結果は以下の通りです.node main.js
1
2
3
// ,counter.js require
結び目