ホームページ > ウェブフロントエンド > jsチュートリアル > Nodejsミニマリスト入門チュートリアル(1):モジュールmechanism_node.js

Nodejsミニマリスト入門チュートリアル(1):モジュールmechanism_node.js

WBOY
リリース: 2016-05-16 16:32:52
オリジナル
1107 人が閲覧しました

JavaScript 仕様 (ECMAScript) は、ほとんどのプログラムで使用できる完全な標準ライブラリを定義していません。 CommonJS は、一連の JavaScript 標準ライブラリ仕様を提供します。ノードは CommonJS 仕様を実装します。

モジュールの基本

Nodeではモジュールとファイルは1対1に対応しています。モジュールを定義します:

コードをコピー コードは次のとおりです:

// サークル.js
var PI = Math.PI;

//関数領域のエクスポート
exports.area = function(r) {
PI * r * rを返します;
}

//関数の周囲をエクスポート
exports.circumference = function(r) {
2 * PI * rを返します;
};

ここで、エクスポートする必要がある関数をエクスポート オブジェクトに追加します。モジュールのローカル変数には外部からアクセスできません (たとえば、上の例の PI 変数)。 require を呼び出してモジュールcircle.jsをロードします:
コードをコピー コードは次のとおりです:

var Circle = require('./circle.js');
console.log('半径4の円の面積は '
circle.area(4));

ちなみに、モジュールの中にはモジュールそのものを表す module オブジェクトがあり、exports はモジュールの属性です。

モジュールの読み込み

ノードはロードされたモジュールをバッファリングして、再度ロードするオーバーヘッドを回避します:

コードをコピー コードは次のとおりです:

// test.js
console.log("ここにいます");

モジュール test.js を複数回ロードします

コードをコピーします コードは次のとおりです:

// "I'm here"
を 1 回だけ出力します require('./test');
require('./test');

サフィックスのないファイルをロードする場合、ノードはサフィックスを追加してロードしようとします:

1..js (JavaScript ソースファイル)
2..node (C/C拡張モジュール)
3..json (JSON ファイル)

モジュールにはいくつかの主要なカテゴリがあります:

1. コアモジュール。コア モジュールは Node にコンパイルされており、これらのコア モジュールはソース コードの lib ディレクトリにあります。共通コアモジュール: net、http、fs モジュールなど

2. ファイルモジュール。ファイル モジュールは、上で見た Circle.js

などの相対パスまたは絶対パスを介してロードされます。

3. カスタムモジュール。カスタム モジュールは、node_modules ディレクトリにあり、npm を通じてインストールするさまざまなモジュールは、node_modules ディレクトリ

に配置されます。

コア モジュールは常に最初にロードされます。カスタム モジュール http がある場合でも、カスタム モジュール http の代わりにコア モジュール http がロードされます。カスタム モジュールをロードするときは、まず現在のディレクトリでnode_modules ディレクトリを探し、次に親ディレクトリの下のnode_modules ディレクトリを探し、ルート ディレクトリまで同様に検索します。

require ロードされたモジュールがファイルではなくディレクトリである場合、そのようなディレクトリはパッケージと呼ばれます。パッケージには、package.json (パッケージ説明ファイル) という名前のファイルがあります。例:

コードをコピー コードは次のとおりです:

{ "名前" : "some-library",
"main" : "./lib/some-library.js" }

ここで、main はロードする必要があるモジュールを示します。 package.json がパッケージに存在しない場合、または package.json でメイン モジュールが指定されていない場合、Node は、index.js、index.node、index.json をロードしようとします。

JavaScript モジュールをロードする場合、ロードされたモジュールは関数でラップされます:

コードをコピー コードは次のとおりです:

function(モジュール, エクスポート, __filename, __dirname, ...) {
JavaScript モジュール
}

各 JavaScript モジュールによってアクセスされるモジュール、エクスポート、__filename、__dirname などは、実際には関数パラメーターを通じて渡されます。このラッピングにより、モジュールのローカル変数には外部からアクセスできなくなります。しかし、場合によっては、次のような理解が難しい問題が発生することがあります。

test1.js

コードをコピーします コードは次のとおりです:

エクスポート = {
名前: 'Name5566',
}

test2.js

コードをコピーします コードは次のとおりです:

module.exports = {
名前: 'Name5566',
}

次の 2 つのモジュールをロードします:

コードをコピーします コードは次のとおりです:

var test1 = require('./test1.js');
console.log(test1.name); // 未定義
var test2 = require('./test2.js');
console.log(test2.name) // Name5566
;

Exports はパラメーターとしてモジュールに渡されます。exports.x を通じて属性 (またはメソッド) をエクスポート オブジェクトに追加することもできますが、値を直接エクスポート (たとえば、exports = x) に割り当てると、形式的な変更が加えられるだけです。したがって、実際のパラメータの値ではなくパラメータです:

1. エクスポートに属性を追加する場合は、exports
を使用します。 2. エクスポートに値を割り当てる場合は、 module.exports

を使用します

パック

CommonJS 仕様によれば、完全なパッケージには以下が含まれている必要があります:

1.package.json パッケージ説明ファイル
2.bin バイナリ ファイル ディレクトリ
3.lib JavaScript コードディレクトリ
4.docドキュメントディレクトリ
5.test テストコードディレクトリ

NPM は、Node.js 用のパッケージ管理ツールです。一般的な使用法:

コマンドのドキュメントを参照してください:

コードをコピーします コードは次のとおりです:

npm ヘルプ インストール

インストール コマンドについてはドキュメントを参照してください。

パッケージをインストールします:

コードをコピー コードは次のとおりです:

npm install redis

redis パッケージをインストールします。 install コマンドは、現在のディレクトリの node_modules ディレクトリにパッケージをインストールします。

パッケージを削除します:

コードをコピー コードは次のとおりです:

npm は redis を削除します

Redis パッケージを削除します。削除コマンドは、現在のディレクトリ内のパッケージを削除します。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート