Node.js module.exports の目的は何ですか? また、どのように使用しますか? 質問する

Node.js module.exports の目的は何ですか? また、どのように使用しますか? 質問する

Node.js の目的は何ですか?module.exportsまた、どのように使用しますか?

これに関する情報は見つからないようですが、ソース コードでよく見かけるので、Node.js のかなり重要な部分であると思われます。

によるNode.js ドキュメント:

モジュール

現在の への参照module。特に、module.exportsエクスポート オブジェクトと同じです。src/node.js詳細については、 を参照してください。

しかし、これは実際には役に立ちません。

具体的に何をmodule.exportsするのでしょうか、また簡単な例は何でしょうか?

ベストアンサー1

module.exports呼び出しの結果として実際に返されるオブジェクトですrequire

変数exportsは最初は同じオブジェクトに設定されるため (つまり、省略形の「エイリアス」)、モジュール コードでは通常、次のように記述します。

let myFunc1 = function() { ... };
let myFunc2 = function() { ... };
exports.myFunc1 = myFunc1;
exports.myFunc2 = myFunc2;

内部スコープの関数をエクスポート (または「公開」) しますmyFunc1myFunc2

呼び出しコードでは以下を使用します:

const m = require('./mymodule');
m.myFunc1();

最後の行は、 の結果がrequire(通常は) プロパティにアクセスできる単純なオブジェクトであることを示しています。

注意: を上書きするとexportsは参照されなくなりますmodule.exports。したがって、 に新しいオブジェクト(または関数参照)を割り当てたい場合は、exportsその新しいオブジェクトも に割り当てる必要があります。module.exports


exportsオブジェクトに追加される名前は、追加する値のモジュールの内部スコープ名と同じである必要はないことに注意してください。次のようになります。

let myVeryLongInternalName = function() { ... };
exports.shortName = myVeryLongInternalName;
// add other objects, functions, as required

に続く:

const m = require('./mymodule');
m.shortName(); // invokes module.myVeryLongInternalName

おすすめ記事