Разница между module.exports и экспортами в NodeJS

Опубликовано: 26 Июля, 2021

Модуль представляет собой простой объект JavaScript, представляющий текущий модуль. Он является локальным для каждого модуля, а также является частным. У него есть свойство exports, которое является простой переменной JavaScript, для которой задано значение module.exports. В конце файла Node.js возвращает module.exports в требуемую функцию.

О module.exports:

Когда мы хотим экспортировать один класс / переменную / функцию из одного модуля в другой, мы используем способ module.exports.

Пример: Создание два calculator.js файлов и operation.js и экспортировать Арифметик класса от calculator.js до operation.js использование module.exports методы. Здесь мы создали класс Arithmetic и экспортировали весь класс с помощью module.exports .

Имя файла: Calculator.js

Javascript




class Artimatics {
constructor(a, b) {
this .a = a;
this .b = b;
}
add() {
return this .a + this .b;
}
subtract() {
return this .a - this .b;
}
multiply() {
return this .a * this .b;
}
divide() {
if ( this .b != 0) {
return this .a / this .b;
}
return "divided by zero !!!!" ;
}
};
module.exports = Artimatics;

Имя файла: operation.js

Javascript




const Artimatics = require( './calculator.js' );
const op = new Artimatics(100,40);
console.log(`Addition -> ${op.add()}`);
console.log(`subtraction -> ${op.subtract()}`);
console.log(`Multiplication -> ${op.multiply()}`);
console.log(`Division -> ${op.divide()}`);

Запустите файл operation.js, используя следующую команду:

 узел operation.js

Выход:

Использование module.exports

Об экспорте:

Когда мы хотим экспортировать несколько переменных / функций из одного модуля в другой, мы используем экспорт.

Пример: Создание два calculator.js файлов и operation.js и экспортировать несколько функций из calculator.js файла.

Имя файла: Calculator.js

Javascript






exports.add = (a, b) => a + b;
exports.subtract = (a, b) => a - b;
exports.multiply = (a, b) => a * b;
exports.divide = (a, b) => {
if (b != 0) {
return a / b;
}
return `Divided by zero !!!`;
}

Имя файла: operation.js

Javascript




const Artimatics = require( './calculator.js' );
console.log(`Addition -> ${Artimatics.add(100,40)}`);
console.log(`subtraction -> ${Artimatics.subtract(100,40)}`);
console.log(`Multiplication -> ${Artimatics.multiply(100,40)}`);
console.log(`Division -> ${Artimatics.divide(100,40)}`);

Запустите файл operation.js, используя следующую команду:

 узел operation.js

Выход:

Использование экспорта

Ключевое различие между module.exports и exports:

S.no

Module.exports

Экспорт

1

Когда мы хотим экспортировать один класс / переменную / функцию из одного модуля в другой, мы используем способ module.exports. Когда мы хотим экспортировать несколько переменных / функций из одного модуля в другой, мы используем способ экспорта.

2.

Это ссылка на объект, которая возвращается из вызовов require (). Экспорт не возвращается require ()