Nodejsモジュール

2366 ワード

モジュール
コンピュータプログラムの開発では、コードを書くほど、コードが長くなり、維持が難しくなります.保守可能なコードを作成するために、私たちは多くの関数をグループ化して、別々のファイルに入れます.このように、各ファイルに含まれるコードは比較的少ないです.多くの言語はこのような方式でコードを組織します.Node環境では、一つ.jsファイルとはモジュールを使うことです.モジュールのメリットは何ですか?最大の利点は、コードのメンテナンス性を大幅に向上させました.次に、コードを作成する必要はありません.モジュールを作成し終わったら、他のところに引用されます.プログラムを作成する時、Node内蔵のモジュールと第三者からのモジュールを含めて、よく他のモジュールを引用します.モジュールを使用すると、関数名と変数名の衝突を回避できます.名前の関数と変数はそれぞれ異なるモジュールに存在することができます.したがって、自分たちはモジュールを作る時、名前を考えずに他のモジュールと衝突します.前のセクションにハロー.jsファイルを作成しました.このハロー.jsファイルはモジュールです.モジュールの名前はファイル名です.ハロー.jsファイルはハローというモジュールです.ハロー.jsを改造して関数を作ります.他のところでこの関数を呼び出すことができます.
'use strict'
var s = 'Hello';
function greet(name){
    console.log(s + ',' + name + '!');
}
module.exports = greet;
関数greet()はハローモジュールで定義されています.コードの最後の行は関数greetをモジュールの出力として露出します.他のモジュールはgreet関数を使用できます.問題は他のモジュールがハローモジュールというgreet関数をどう使うかです.私たちはmian.jsファイルを作成してハローモジュールのgreet関数を呼び出します.
'use strict'
//  hello  
var greet = require('./hello');
var s = 'Michael';
greet(s);
ハローモジュールを導入したNodeで提供されるrequire関数に注目してください.導入されたモジュールの一番変数はgreet変数に保存されています.そのgreet変数は一体何ですか?実は変数greetはhello.jsの中でmodule.export=greetを使います.出力のgreet関数は、Main.jsがハローモジュールで定義されているgreet()関数を引用することに成功しました.main.jsとhello.jsは同じディレクトリにあるので、現在のディレクトリ''を使用しました.相対カタログを書くことを忘れないでください.モジュール名のみを書く場合は、「hello」となります.Nodeはモジュールを順次内蔵しています.グローバルモジュールと現在のモジュールの下でhello.jsを検索します.エラーが発生する可能性があります.module.js throw err.このエラーにあったら、チェックしてください.
  • モジュール名は正しく書かれていますか?
  • モジュールファイルが存在しますか?
  • 相対パスは正しいかどうか.
  • Common JS仕様
    このモジュールローディングメカニズムは、CommunJS仕様と呼ばれています.この仕様では、各jsファイルはモジュールです.内部でそれぞれ使用する変数名と関数名は互いに競合しません.一つのモジュールは外部に変数を露出したいです.module.export=variableで、一つのモジュールは他のモジュールに露出された変数を参照してください.var ref=requeで.モジュール参照変数を取得しました.
    結論
    モジュールに変数を外部に出力するには、module.export=variableを使用します.出力する変数は、任意のオブジェクト、関数、配列などとすることができます.他のモジュールから出力するオブジェクトを紹介します.導入されたオブジェクトは具体的に何ですか?モジュール出力を導入する対象によって異なります.
    キーオブジェクト'{}'を出力するなら、exportsという既存の空のオブジェクトを利用して{}上に新しいキーを追加し続けます.関数または配列を出力するには、直接module.exportオブジェクトに値を割り当てなければなりません.
    ですから、私たちは結論を出すことができます.直接module.exportsに対して価値を与えて、どんな状況にも対応できます.
    module.exports = {
        foo: function () { return 'foo'; }
    };
      :
    module.exports = function () { return 'foo'; };
    
    最終的には、モジュール変数をmodule.export=xxxで出力することを強く提案します.このようにすると、一つの方法だけを覚えておく必要があります.