このページ(http://docs.nodejitsu.com/articles/getting-started/what-is-require)には、「exportsオブジェクトを関数または新しいオブジェクトに設定する場合は、 module.exportsオブジェクトを使用してください。」
私の質問はその理由です。
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
私はconsole.logに結果(result=require(example.js)
)を記録し、最初の結果[Function]
は2番目の結果です{}
。
その理由を教えてください。Node.jsでのmodule.exportsとexportsの投稿をここで読みました。それは役に立ちますが、そのように設計されている理由を説明していません。輸出の参照を直接返すと問題はありますか?
exports
などを使用するのですか?
module.exports
、決して間違いexports
はありませんが、デフォルトのエクスポートされたオブジェクトを置き換えない場合、つまり、次のようなプロパティを単にアタッチする場合に使用できますvar foo = require('foo').foo
。このfoo
プロパティは次のようにエクスポートできます。exports.foo = ...
もちろん、でもエクスポートできますmodule.exports
。それは個人的な選択ですが、私は現在適切に使用module.exports
していexports
ます。
module.exports
。