Avanzado

Tabla de Contenidos

Tabla de Contenidos

Tabla de Contenidos

Módulos e Importaciones

Los Módulos y las Importaciones en JavaScript Los módulos permiten que el código de JavaScript se divida en archivos más pequeños y reutilizables. Esto mejora el mantenimiento y la organización del código.

Exportando en CommonJS

Crea un archivo llamado math.js:

function add(a, b) {
  return a + b;
}
  
function subtract(a, b) {
  return a - b;
}
  
// Export functions
module.exports = { add, subtract };

Importando en CommonJS

En app.js, importa el módulo usando require():

const math = require("./math");

console.log(math.add(5, 3)); // Outputs: 8
console.log(math.subtract(10, 4)); // Outputs: 6

Exportando un Valor Único

module.exports = function (name) {
  return `Hello, ${name}!`;
};

Importando una sola función exportada:

const greet = require("./greet");
console.log(greet("Alice")); // Outputs: Hello, Alice!

Módulos ES6 (ESM)

Los módulos ES6 son la forma moderna de trabajar con módulos en JavaScript. Usan exportar y importar y funcionan tanto en navegadores como en Node.js (con "type": "module" en package.json).

Exportaciones Nombradas

Crea math.js:

export function add(a, b) {
  return a + b;
}
  
export function subtract(a, b) {
  return a - b;
}

Exportaciones Predeterminadas

Solo una exportación predeterminada por archivo:

export default function multiply(a, b) {
  return a * b;
}

Importando en Módulos ES6

Importando Exportaciones Nombradas

En app.js:

import { add, subtract } from "./math.js";

console.log(add(5, 3)); // Outputs: 8
console.log(subtract(10, 4)); // Outputs: 6

Importando una Exportación Predeterminada

import multiply from "./math.js";
console.log(multiply(4, 5)); // Outputs: 20

Importando Todo desde un Módulo

import * as math from "./math.js";

console.log(math.add(2, 3));
console.log(math.subtract(7, 2));

Usando Módulos ES6 en Node.js

Para usar módulos ES6 en Node.js, añade "type": "module" en package.json:


Luego, usa importar en lugar de require().

import { add } from "./math.js";
console.log(add(10, 5));

Diferencias Entre CommonJS y Módulos ES6

Características CommonJS (require) Módulos ES6 (importar) Predeterminado en Node.js JavaScript moderno (ES6) Sintaxis require() / module.exports importar / exportar Cargar Tipo Sincrónico Asincrónico Puede ser usado en Navegadores No (sin empaquetadores) Sí (Compatible en navegadores modernos)

¿Cuándo Usar Cuál?

  • Usa CommonJS para aplicaciones de Node.js que no requieran sintaxis de JavaScript moderno.

  • Usa Módulos ES6 para proyectos de JavaScript moderno, navegadores y desarrollo a prueba de futuro.

Conclusión

Los módulos mejoran la reutilización y organización del código. Los módulos ES6 (importar/exportar) son el estándar para JavaScript moderno, mientras que CommonJS (require/module.exports) todavía se utiliza ampliamente en Node.js. La próxima sección cubrirá trabajando con bases de datos en JavaScript, centrando en conectar Node.js a bases de datos relacionales y NoSQL.