Какова функция module.exports?
module.exports
— это специальный объект в Node.js, который используется для экспорта функций, объектов или значений из модуля, чтобы они могли быть импортированы и использованы в других модулях. Это основной механический элемент системы модулей CommonJS в Node.js.
Зачем нужно module.exports?
Когда вы пишете код в Node.js, обычно вы делите его на несколько файлов (или модулей) для лучшей организации и повторного использования. С помощью module.exports
вы можете указать, что именно должно быть доступно в других модулях, когда они импортируют ваш модуль.
Пример использования
math.js
):// math.js
const add = (a, b) => a + b;
const subtract = (a, b) => a - b;
// Экспортируем функции
module.exports = {
add,
subtract
};
app.js
):// app.js
const math = require('./math');
const resultAdd = math.add(5, 3);
const resultSubtract = math.subtract(5, 3);
console.log(`Сумма: ${resultAdd}`); // Сумма: 8
console.log(`Разность: ${resultSubtract}`); // Разность: 2
Как это работает
- В примере выше мы создали модуль
math.js
, который содержит две функции:add
иsubtract
. Эти функции экспортируются с помощьюmodule.exports
. - Затем в
app.js
мы импортируем нашmath
модуль с помощью функцииrequire()
. Теперьadd
иsubtract
доступны для использования в этом файле.
Альтернативное использование
Можно использовать module.exports
не только для объектов, но и для единичных значений, например:
// singleFunction.js
const greeting = (name) => `Привет, ${name}!`;
module.exports = greeting; // экспортируем одну функцию
И тогда использование будет таким:
// app.js
const greet = require('./singleFunction');
console.log(greet('Мир')); // Привет, Мир!
Заключение
Использование module.exports
— это один из самых простых и мощных способов организовать и структурировать код в Node.js, позволяющий вам делиться функциональностью между разными файлами, что делает код более чистым и управляемым.