В 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
.