nodejs では、モジュールは、特定の関数を使用するために使用される js ファイルであり、すべての関数をモジュールに分割することにより、各モジュールで定義されるグローバル変数と関数の範囲もこのモジュールに限定され、モジュールとそのモジュールを管理するために使用されます。依存関係をサポートし、複数のモジュールをカプセル化できます。
この記事の動作環境: Windows 10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。
パッケージとモジュールを区別する: パッケージとモジュールを適切に使用すると、プログラムの冗長性が減り、可読性が高く、完全に機能するようになります。
パッケージは、複数のモジュールとその依存関係を管理するために使用されます。パッケージのルート ディレクトリには package.json ファイルが含まれている必要があります。 CommonJS 仕様に準拠する package.json ファイルには通常、次のフィールドが含まれます。
名前: パッケージ名。パッケージ名は一意であり、小文字、数字、アンダースコアのみを含めることができます。 version: パッケージのバージョン番号。 description: パッケージの説明。キーワード: 検索に使用されるキーワード配列。ホームページ: プロジェクトのホームページ。 bugs: バグを送信するアドレス。ライセンス:ライセンス。メンテナー: メンテナーの配列。貢献者: 貢献者の配列。リポジトリ: プロジェクト ウェアハウス ホスティング アドレスの配列。依存関係: パッケージの依存関係。package.json ファイルは手動で編集することも、npm init コマンドを使用して生成することもできます。 ターミナルに npm init コマンドを入力して、package.json ファイルを含むパッケージを生成します。 npm init --yes と直接入力すると、質問への回答をスキップし、デフォルト値を使用して package.json ファイルを直接生成します。
コマンド npm install xxx を使用してパッケージをインストールします。例えば:
インストールパッケージ: npm install Express 更新パッケージ: npm update Express パッケージの削除: npm uninstall Expressnpm コミュニティでパッケージを見つけ、コマンド npm install module name を使用してインストールします。各モジュールの名前はグローバルに一意です。
ブラウザーの JS と Node.js の JS を比較する必要があります。
JavaScript では通常、JavaScript コードを複数の js ファイルに分割し、これらの js ファイルを結合してブラウザーで実行します。 Node.js では、すべての関数がモジュールに分割されます。各モジュールは js ファイルであり、各モジュールで定義されているグローバル変数や関数のスコープもこのモジュールに限定されており、exports オブジェクトのみを外部に渡すことができます。Node.jsでは、ファイルやファイルシステムを操作するモジュール fs 、httpサービスを構築するモジュール http 、ファイルパスを処理するモジュール path など、それぞれが機能を実装した多数のモジュールが公式に提供されています。
モジュールを作成し、module.exports を使用してエクスポートします。
myModule.js ファイル
関数 foo() { console.log("hello syl");} module.exports.foo = foo;Index.js ファイル
var hello = require("./myModule.js");hello.foo();注: コア モジュールは、Node.js ソース コードの lib/ ディレクトリで定義されます。 require() は常に最初にコア モジュールをロードします。 例: require('http') は、同じ名前のファイルがある場合でも、常に組み込みの HTTP モジュールを返します。
操作を簡素化するために、Node.js には特別な変数、exports と module.exports が用意されています。 これら 2 行のコードは同じ効果があります。
module.exports.foo = foo;exports.foo = foo;事例を説明してください:
// module.jsconsole.log('module', module)console.log('module.exports', module.exports)console.log('exports', exports)console.log(module.exports === エクスポート) ;console.log("===========================================); imports = { a: 3, };console.log(exports);console.log(module.exports);console.log(exports === module.exports);require() は module.exports によってエクスポートされた値を取得します。 module.exports と exports を使用して複数のメンバーをエクスポートできます。 module.exports は 1 つのメンバーのみをエクスポートします。
推奨される学習: 「nodejs ビデオ チュートリアル」
上記は、nodejs モジュールとパッケージが行うことの詳細な内容です。詳細については、このサイトの他の関連記事に注目してください。