Lección 04. Patrón de diseño Módulo.

Como lo requiere todo ,patrón de diseño el código desarrollado, debe estar estructurado de manera organizada, para ello, se conoce el uso de exportación/importación por medio de módulos y archivos separados.

Node.js permite exportar módulos de diferentes maneras.

Algunas de ellas se presentan a continuación:

CommonJS._

CommonJS es el modo de exportación/importación mas conocido dentro del ámbito de Node.js.

Supongamos que tenemos la siguiente funcion en un archivo llamado suma.js:

Copiar código
//Codigo dentro de suma.js

function suma (a, b) {
	return a + b;
}

Para exportar esta función al archivo index.js, modificaríamos nuestro archivo agregándole la exportación de:

module.exports

De la siguiente manera:

Copiar código
//Codigo dentro de suma.js

//Funcion suma
function suma (a, b) {
	return a + b;
}

//Exportacion de suma
module.exports = suma

Y en nuestro archivo a donde importar, colocamos:

Copiar código
//Codigo dentro de index.js

//Importacion de suma
const suma = require("./suma")

//Utilizacion de suma
console.log(suma(1,2));

CommonJS con objetos y desestructuración._

También podemos aplicar desestructuración y exportación por medio de objetos utilizando commonJS.

Donde suma.js:

Copiar código
//Codigo dentro de suma.js

//Funcion suma
function suma (a, b) {
  return a + b;
}

//Funcion resta
function resta (a, b) {
  return a - b;
}

//Exportacion de funciones en objeto
module.exports = {
  suma: suma,
  resta: resta,
}

E index.js:

Copiar código
//Codigo dentro de index.js

//Importacion de funciones por medio de desestructuracion
const {suma, resta} = require("./suma")

//Utilizacion de suma
console.log(suma(1,2));

//Utilizacion de resta
console.log(resta(1,2));

Nota: El código de suma.js:

Copiar código
//Exportacion de funciones en objeto
module.exports = {
  suma: suma,
  resta: resta,
}

Puede simplificarse por:

Copiar código
//Exportacion de funciones en objeto
module.exports = {
  suma,
  resta,
}

Siempre y cuando, desee NO colocarle un alias a los nombres.

ES Modules._

Para utilizar importación/exportación con ES Modules los archivos debes ser de extensión:

.mjs

Como el ejemplo siguiente:

Donde modules.mjs:

Copiar código
//Codigo dentro de modules.mjs

//Funcion exportable suma
export function suma (a, b) {
  return a + b;
}

//Funcion exportable resta
export function resta (a, b) {
  return a - b;
}

//Funcion exportable multiplicacion
export function multiplicacion (a, b) {
  return a * b;
}

Y donde index.mjs:

Copiar código
//Codigo dentro de index.mjs

//Importacion de modulos con ayuda de desestructuración
import {suma, resta, multiplicacion} from "./modules.mjs";

//Uso de suma
console.log(suma(1,2));

//Uso de resta
console.log(resta(1,2));

//Uso de multiplicacion
console.log(multiplicacion(1,2));

Nota: Este es el modo de exportación/importación creado por ES, utilizando módulos.

Nota: Este tipo de exportación/importación es la recomendada.