Los módulos en Node.js son unidades de código reutilizable que permiten organizar aplicaciones de forma eficiente y evitar contaminación global. Existen módulos nativos, locales y de terceros. Node.js usa CommonJS como sistema tradicional de módulos, basado en require()
y module.exports
, con carga síncrona y cache que mantiene estado compartido. También soporta ES Modules, el estándar moderno con sintaxis import
/export
, carga asíncrona y análisis estático. Para usar ES Modules se debe configurar el proyecto adecuadamente. Ambos sistemas tienen diferencias en sintaxis, carga y variables globales, pero Node.js permite cierta interoperabilidad. Se recomienda usar ES Modules en proyectos nuevos, manteniendo CommonJS en proyectos existentes.
Los módulos en Node.js son unidades de código reutilizable que permiten organizar y estructurar las aplicaciones de manera eficiente. Un módulo puede contener funciones, objetos, clases o cualquier código JavaScript que se puede exportar para ser utilizado en otros archivos. Esta modularidad es fundamental para crear aplicaciones escalables y mantenibles.
En Node.js, cada archivo JavaScript se considera automáticamente un módulo independiente. Esto significa que las variables, funciones y clases definidas en un archivo no son accesibles desde otros archivos a menos que se exporten explícitamente. Esta característica proporciona un encapsulamiento natural que evita la contaminación del espacio de nombres global.
Node.js trabaja con tres tipos principales de módulos:
const fs = require('fs');
const path = require('path');
const http = require('http');
Copy
// archivo: calculadora.js
function sumar(a, b) {
return a + b;
}
function restar(a, b) {
return a - b;
}
module.exports = { sumar, restar };
Copy
// Después de instalar con: npm install lodash
const _ = require('lodash');
Copy
Cuando Node.js encuentra una declaración de importación, ejecuta un proceso de resolución para localizar el módulo solicitado. Este proceso sigue un orden específico de búsqueda:
1. Módulos nativos: Node.js primero verifica si el nombre corresponde a un módulo nativo.
2. Rutas relativas y absolutas: Si el nombre comienza con ./
, ../
o /
, Node.js busca el archivo en la ruta especificada.
const miModulo = require('./utils/helpers');
const config = require('../config/database');