ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsモジュールの使い方

Nodejsモジュールの使い方

WBOY
WBOYオリジナル
2023-05-18 13:26:08606ブラウズ

Node.js は、イベント駆動型の非同期 I/O に基づいたオープンソースのクロスプラットフォーム JavaScript ランタイム環境です。 Node.js では、コードを整理するためにモジュールが使用されます。各モジュールは独立したファイルであり、インポート/エクスポートを通じてモジュール間で呼び出し、論理的に再利用できます。この記事ではNode.jsモジュールの基本的な使い方を紹介します。

1. モジュールのインポート

Node.js では、require() 関数を使用してモジュールをインポートします。 require() 関数のパラメータは、インポートする必要があるモジュールの名前です。モジュール名には、相対パスまたは絶対パス、またはシステム モジュールを指定できます。

const module1 = require('./module1')
const module2 = require('./module2')
const fs = require('fs')

2. モジュールのエクスポート

Node.js では、module.exports オブジェクトまたは exports オブジェクトを使用してモジュールをエクスポートします。 module.exports と exports のデフォルト値は空のオブジェクト {} ですが、module.exports は再割り当てできますが、exports は module.exports への単なる参照であり、再割り当てできません。

function add(a, b) {
  return a + b
}

module.exports = {
  add: add
}

exports.sub = function(a, b) {
  return a - b
}

3. モジュール キャッシュ

モジュールを読み込むとき、Node.js は読み込まれたモジュールをキャッシュして、操作効率を向上させます。同じモジュールが 2 回目にロードされると、Node.js は再ロードせずにキャッシュから直接読み取ります。

4. モジュール パス解決シーケンス

require() 関数で指定されたモジュール名がシステム モジュールではない場合、モジュール パスは次の順序で解析されます:

1. 指定された名前のモジュールがコア モジュールの場合、後続のパス解析はスキップされ、モジュールが直接返されます;

2. 指定された名前のモジュールが './ で始まる場合' または '../' を選択し、パス解決ルールに従ってモジュール ファイルを見つけます。パス解決ルールは次のとおりです。モジュールを含むディレクトリが現在のディレクトリの場合、ディレクトリ内で指定されたファイルを検索します。モジュールを含むディレクトリが $NODE_PATH 環境変数に追加されている場合、指定されたファイルはそのディレクトリ内にあります。モジュールを含むディレクトリが上記の 2 つのディレクトリにない場合、指定されたファイルは現在のディレクトリと $NODE_PATH 環境変数に追加されたディレクトリで検索されます;

3.指定された名前がコア モジュールではなく、「./」または「../」で始まるファイル名でもない場合、モジュール ファイルは次の順序で検索されます:

1.在包含该模块的目录下查找 node_modules 目录;
2.在当前目录下查找 node_modules 目录;
3.在已添加到 $NODE_PATH 环境变量的目录中查找 node_modules 目录;

4。ファイルがまだ見つからないため、エラーが発生します。

5. モジュールの循環参照

Node.js ではモジュール間の循環参照が許可されていますが、循環参照によりモジュールが未定義になる可能性があります。モジュールの循環参照を回避するには、エクスポートの使用方法とインポートのタイミングに注意する必要があります。

6. 概要

この記事では、モジュールのインポート、モジュールのエクスポート、モジュールのキャッシュ、モジュール パスの解決順序、モジュールの循環参照など、Node.js モジュールの基本的な使用方法を紹介します。これらの内容を理解することは、Node.js モジュラー プログラミングの考え方をより深く理解し、使用するのに役立ちます。

以上がNodejsモジュールの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。