На этой странице ( http://docs.nodejitsu.com/articles/getting-started/what-is-require ) говорится, что «Если вы хотите установить объект экспорта в функцию или новый объект, вы должны используйте объект module.exports. "
У меня вопрос почему.
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
Я console.logged результат ( result=require(example.js)) и первый из них [Function]второй {}.
Не могли бы вы объяснить причину этого? Я прочитал пост здесь: module.exports против экспорта в Node.js . Это полезно, но не объясняет причину, по которой он разработан таким образом. Будет ли проблема, если ссылка на экспорт будет возвращена напрямую?
exports, например, github.com/tj/consolidate.js/blob/master/lib/consolidate.js ?
module.exports, вы никогда не будете ошибаться, но вы можете использовать , exportsесли вы не заменяете по умолчанию экспортируются объект на, то есть, если вы просто прикрепить свойства , как это: var foo = require('foo').foo. Это fooсвойство может быть экспортировано следующим образом: exports.foo = ...и, конечно, также с module.exports. Это личный выбор, но я в настоящее время использую module.exportsи exportsсоответственно.
module.exports.