nodeのモジュール
4463 ワード
モジュール
少し大きなプログラムを作成するときは、コードをモジュール化するのが一般的です.NodeJSでは、一般的にコードを異なるJSファイルに合理的に分割し、各ファイルはモジュールであり、ファイルパスはモジュール名である.
各モジュールを作成する場合、
require
モジュール初期化
一つのモジュールのJSコードはモジュールが初めて使用された時に一回だけ実行され、実行中にモジュールのエクスポートオブジェクトを初期化します.その後、キャッシュされたエクスポートオブジェクトは、繰り返し利用される.
メインモジュール
コマンドラインパラメータをNodeJSに渡すことで、プログラムを起動するモジュールをメインモジュールと呼びます.メインモジュールは、プログラム全体を構成する他のモジュールのスケジューリングを行います.例えば、以下のコマンドでプログラムを起動すると、
例えば以下のディレクトリがあります.
メインモジュール
バイナリモジュール
一般的にはJSモジュールを使っていますが、ノードJSもC/C++を使ってバイナリモジュールの作成をサポートしています.コンパイルされたバイナリモジュールは、ファイルの拡張子が
結び目
この章ではNodeJSに関する基本概念と使い方を紹介します. NodeJSは、任意のオペレーティングシステムにおいて、NodeJSをインストールする際に、本質的に行うことは、NodeJS実行プログラムをディレクトリにコピーし、システムPATH環境変数の下で、端末の下で 端末で直接入力 NodeJSはCMDモジュールシステムを使用して、メインモジュールはプログラムのエントリポイントとして、すべてのモジュールは実行中に一回だけ初期化されます. JSモジュールが需要を満たすことができない限り、安易にバイナリモジュールを使用しないでください.そうでなければ、ユーザーは悲鳴を上げます.
少し大きなプログラムを作成するときは、コードをモジュール化するのが一般的です.NodeJSでは、一般的にコードを異なるJSファイルに合理的に分割し、各ファイルはモジュールであり、ファイルパスはモジュール名である.
各モジュールを作成する場合、
require
、exports
、module
の3つの予め定義された変数が使用できる.require
require
関数は、現在のモジュールにおいて他のモジュールをロードして使用し、モジュール名を入力し、モジュールのオブジェクトを導出するために使用されます.モジュール名は、相対パス(./
で始まる)または絶対パス(/
または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に関する基本概念と使い方を紹介します.
node
コマンドを使用することができるようにするJSスクリプト解析器です.node
コマンドはコマンドインタラクションモードに入ることができ、正規表現のようないくつかのJSコードセグメントをテストするのに適しています.