В CommonJS, модульной системе, используемой в Node.js, существует несколько способов экспорта функциональности из модуля. Вот различные типы экспорта в CommonJS:
- Экспорт по умолчанию:
- Экспорт по умолчанию позволяет вам экспортировать отдельное значение или функцию в качестве экспорта модуля по умолчанию.
- Чтобы использовать экспорт по умолчанию, вы назначаете значение или функцию непосредственно
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. Каждый подход имеет свои варианты использования в зависимости от требований вашего проекта.