На цій сторінці ( 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")
}
Я втішаю результат ( 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
.