Разница между module.exports и экспортами в NodeJS
Модуль представляет собой простой объект 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
Выход:
Об экспорте:
Когда мы хотим экспортировать несколько переменных / функций из одного модуля в другой, мы используем экспорт.
Пример: Создание два 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 2. Когда мы хотим экспортировать один класс / переменную / функцию из одного модуля в другой, мы используем способ module.exports. Когда мы хотим экспортировать несколько переменных / функций из одного модуля в другой, мы используем способ экспорта. Это ссылка на объект, которая возвращается из вызовов require (). Экспорт не возвращается require ()