В CommonJS, модульной системе, используемой в Node.js, существует несколько способов экспорта функциональности из модуля. Вот различные типы экспорта в CommonJS:

  1. Экспорт по умолчанию:
  • Экспорт по умолчанию позволяет вам экспортировать отдельное значение или функцию в качестве экспорта модуля по умолчанию.
  • Чтобы использовать экспорт по умолчанию, вы назначаете значение или функцию непосредственно module.exports.
  • В модуле импорта вы можете использовать любое имя для ссылки на экспорт по умолчанию.

Пример:

// module.js
function myFunction() {
  // Function logic
}
module.exports = myFunction;
// import.js
const myFunc = require('./module.js');
myFunc(); // Call the exported function

2. Именованные экспорты:

  • Именованные экспорты позволяют вам экспортировать несколько значений или функций из модуля, назначая их как свойства module.exports.
  • На каждое экспортируемое значение или функцию ссылаются по назначенному имени в модуле импорта.

Пример:

// module.js
function function1() {
  // Function 1 logic
}
function function2() {
  // Function 2 logic
}
module.exports = {
  func1: function1,
  func2: function2
};
// import.js
const { func1, func2 } = require('./module.js');
func1(); // Call function1
func2(); // Call function2

3. Смешанный экспорт:

  • Смешанный экспорт позволяет вам иметь экспорт по умолчанию и именованный экспорт в одном модуле.
  • Вы можете назначить экспорт по умолчанию непосредственно module.exports и назначить именованные экспорты как свойства module.exports.

Пример:

// module.js
function defaultFunction() {
  // Default function logic
}
function namedFunction() {
  // Named function logic
}
module.exports = defaultFunction;
module.exports.namedFunction = namedFunction;
// import.js
const myDefaultFunc = require('./module.js');
const { namedFunction } = require('./module.js');
myDefaultFunc(); // Call the default function
namedFunction(); // Call the named function

Это распространенные способы экспорта функциональности в модули CommonJS. Каждый подход имеет свои варианты использования в зависимости от требований вашего проекта.