Junior — Middle
Mi a különbség a module.exports és az exports tulajdonság használata között Node.js-ben a modulok exportálásakor?
sobes.tech MI
Válasz az MI-től
В Node.js module.exports и exports связаны с экспортом модулей, но работают немного по-разному.
module.exports— это объект, который фактически возвращается при импорте модуля.exports— это просто ссылка наmodule.exportsпо умолчанию.
Если вы присваиваете новое значение exports, то связь с module.exports теряется, и экспорт не сработает как ожидается.
Пример правильного использования:
// Добавление свойств к exports
exports.foo = function() { return 'foo'; };
// Или замена всего экспорта
module.exports = function() { return 'bar'; };
Если написать так, то экспорт не сработает:
exports = function() { return 'bar'; }; // НЕ ПРАВИЛЬНО
Потому что exports теперь указывает на новую функцию, но module.exports остаётся прежним объектом, который и экспортируется.