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 exportssi 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 fooproprié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.exportset de exportsmanière appropriée.
module.exports.