Sur cette page ( http://docs.nodejitsu.com/articles/getting-started/what-is-require ), il est indiqué que "Si vous souhaitez définir l'objet d'exportation sur une fonction ou un nouvel objet, vous devez utilisez l'objet module.exports. "
Ma question est pourquoi.
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
J'ai console.logged le résultat ( result=require(example.js)
) et le premier est [Function]
le second {}
.
Pourriez-vous s'il vous plaît expliquer la raison derrière cela? J'ai lu le post ici: module.exports vs exportations en Node.js . Il est utile, mais n'explique pas la raison pour laquelle il est conçu de cette manière. Y aura-t-il un problème si la référence des exportations est retournée directement?
exports
, par exemple github.com/tj/consolidate.js/blob/master/lib/consolidate.js ?
module.exports
, vous ne serez jamais tort, mais vous pouvez utiliser exports
si vous n'êtes pas remplacer la valeur par défaut objet exporté, qui est, si vous attachez simplement des propriétés comme ceci: var foo = require('foo').foo
. Cette foo
propriété peut être exportée comme ceci: exports.foo = ...
et bien sûr aussi avec module.exports
. C'est un choix personnel mais j'utilise actuellement module.exports
et de exports
manière appropriée.
module.exports
.