Diferencia entre module.exports y exportaciones en Node.js

El módulo es un objeto JavaScript simple que representa el módulo actual. Es local para cada módulo y también es privado. Tiene una propiedad de exportación que es una variable simple de JavaScript, establecida en module.exports. Al final del archivo, Node.js devuelve module.exports a la función requerida.

Acerca de module.exports: 

Cuando queremos exportar una sola clase/variable/función de un módulo a otro módulo, usamos module.exports .

Ejemplo: Cree dos archivos calculadora.js y operación.js y exporte la clase Aritmética de calculadora.js a operación.js usando el método module.exports . Aquí, hemos creado una clase Aritmética y exportado toda la clase usando module.exports .

Nombre de archivo: calculadora.js

Javascript

class Arithmetic {
    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 = Arithmetic;

Nombre de archivo: operación.js

Javascript

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

Ejecute el archivo operation.js con el siguiente comando:

node operation.js

Producción:

Usando módulo.exportaciones 

Sobre las exportaciones:  

Cuando queremos exportar múltiples variables/funciones de un módulo a otro, usamos exportaciones.

Ejemplo: Cree dos archivos calculadora.js y operación.js y exporte múltiples funciones desde el archivo  calculadora.js .

Nombre de archivo: calculadora.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 !!!`;
}

Nombre de archivo: operación.js

Javascript

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

Ejecute el archivo operation.js con el siguiente comando:

node operation.js

Producción:

Uso de exportaciones

Diferencias clave entre module.exports y exportaciones: 

S.no

Módulo.exportaciones

Exportaciones

1

Cuando queremos exportar una sola clase/variable/función de un módulo a otro módulo, usamos la forma module.exports . Cuando queremos exportar múltiples variables/funciones de un módulo a otro, usamos la forma de exportación .

2.

Es la referencia del objeto que se devuelve de las llamadas require(). Las exportaciones no son devueltas por require(). Es solo una referencia a module.exports .

Publicación traducida automáticamente

Artículo escrito por AStream26 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *