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