Bu sayfada ( http://docs.nodejitsu.com/articles/getting-started/what-is-require ), "Dışa aktarma nesnesini bir işleve veya yeni bir nesneye ayarlamak istiyorsanız, module.exports nesnesini kullanın. "
Sorum neden?
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
Ben console.log sonucu ( result=require(example.js)
) ve birincisi [Function]
ikincisidir {}
.
Bunun nedenini açıklar mısınız? Burada yazıyı okudum: Node.js'deki module.exports vs export . Yardımcı olur, ancak bu şekilde tasarlanma nedenini açıklamaz. İhracatın referansı doğrudan iade edilirse bir sorun olacak mı?
exports
, örneğin github.com/tj/consolidate.js/blob/master/lib/consolidate.js ?
module.exports
, yanlış asla ama kullanabilirsiniz exports
size basitçe böyle özelliklere eklerseniz, varsayılan ihraç nesneyi değiştirilmesi değilseniz: var foo = require('foo').foo
. Bu foo
özellik şu şekilde dışa aktarılabilir: exports.foo = ...
ve tabii ki module.exports
. Bu kişisel bir seçim ama şu anda module.exports
ve exports
uygun şekilde kullanıyorum .
module.exports
.