На этой странице ( 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
.