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


Назад