En esta página ( http://docs.nodejitsu.com/articles/getting-started/what-is-require ), establece que "si desea establecer el objeto de exportación en una función o un nuevo objeto, debe use el objeto module.exports ".
Mi pregunta es por qué.
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
Console.logged el resultado ( result=require(example.js)) y el primero es [Function]el segundo es {}.
¿Podría explicar la razón detrás de esto? He leído el post aquí: module.exports vs exportaciones en Node.js . Es útil, pero no explica la razón por la que está diseñado de esa manera. ¿Habrá algún problema si la referencia de las exportaciones se devuelve directamente?
exports, por ejemplo github.com/tj/consolidate.js/blob/master/lib/consolidate.js ?
module.exports, que nunca será mal, pero se puede utilizar exportssi no está reemplazando el objeto predeterminado exportados, es decir, si simplemente adjuntar propiedades como esta: var foo = require('foo').foo. Esta foopropiedad se puede exportar así: exports.foo = ...y por supuesto también con module.exports. Es una elección personal, pero actualmente estoy usando module.exportsy exportsapropiada.
module.exports.