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 exports
si no está reemplazando el objeto predeterminado exportados, es decir, si simplemente adjuntar propiedades como esta: var foo = require('foo').foo
. Esta foo
propiedad se puede exportar así: exports.foo = ...
y por supuesto también con module.exports
. Es una elección personal, pero actualmente estoy usando module.exports
y exports
apropiada.
module.exports
.