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;
内部スコープの関数をエクスポート (または「公開」) しますmyFunc1
。myFunc2
呼び出しコードでは以下を使用します:
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