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:
//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:
//Codigo dentro de suma.js
//Funcion suma
function suma (a, b) {
return a + b;
}
//Exportacion de suma
module.exports = sumaY en nuestro archivo a donde importar, colocamos:
//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:
//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:
//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:
//Exportacion de funciones en objeto
module.exports = {
suma: suma,
resta: resta,
}Puede simplificarse por:
//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:
//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:
//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.