
В Node.js существует два способа экспорта модуля: module.exports и exports. Оба этих способа позволяют экспортировать переменные и функции из модуля, но имеют некоторые отличия.
module.exports - это объект, который экспортируется по умолчанию из модуля. Он может содержать любой тип данных, включая объекты, функции, массивы и примитивы. Чтобы экспортировать что-то из модуля, нужно присвоить это значение свойству module.exports.
// module.js
function add(a, b) {
return a + b;
}
module.exports = add;Здесь мы экспортируем функцию add из модуля module.js.
exports - это объект, который представляет собой ссылку на module.exports. Он может использоваться для экспорта только тех переменных, которые являются свойствами объекта exports.
// module.js
exports.add = function(a, b) {
return a + b;
};
exports.sub = function(a, b) {
return a - b;
};Здесь мы экспортируем две функции add и sub из модуля module.js с помощью свойств объекта exports.
Отличия между module.exports и exports заключаются в том, что module.exports может быть присвоен любому значению, включая функции, объекты и примитивы, в то время как exports может использоваться только для экспорта свойств объекта exports. Если мы используем exports, чтобы экспортировать объект, функцию или массив, то мы должны добавлять свойства к объекту exports. Если мы хотим экспортировать только одно значение, то мы должны использовать module.exports.
// module.js
module.exports = {
add: function(a, b) {
return a + b;
},
sub: function(a, b) {
return a - b;
}
};Здесь мы экспортируем объект с двумя методами add и sub из модуля module.js.
// module.js
exports.add = function(a, b) {
return a + b;
};
exports.sub = function(a, b) {
return a - b;
};Здесь мы экспортируем две функции add и sub из модуля module.js с помощью свойств объекта exports.