módulo en Node.js

 ¿Qué es un módulo en Node.js?

Un módulo es un archivo JavaScript (o colección de archivos) que encapsula código relacionado. Los módulos te permiten organizar tu aplicación en partes reutilizables y mantener el código limpio.

Tipos de módulos en Node.js

1. Módulos nativos (core modules)

Vienen incluidos con Node.js. No necesitas instalarlos.

javascript
const fs = require('fs');     // Sistema de archivos
const http = require('http'); // Servidor HTTP
const path = require('path'); // Rutas de archivos
const os = require('os');     // Información del sistema

2. Módulos locales (propios)

Son archivos que tú creas. Cada archivo es un módulo.

javascript
// archivo: math.js
const sumar = (a, b) => a + b;
module.exports = { sumar };

// archivo: app.js
const { sumar } = require('./math.js');
console.log(sumar(5, 3)); // 8

3. Módulos de terceros (npm packages)

Los instalas mediante npm (Node Package Manager).

bash
npm install express
npm install axios
npm install lodash
javascript
const express = require('express');
const axios = require('axios');
const _ = require('lodash');

La carpeta node_modules

Cuando instalas paquetes con npm, se crea una carpeta llamada node_modules donde se guardan todas las dependencias del proyecto.

text
mi-proyecto/
├── node_modules/      # Todas las dependencias instaladas
│   ├── express/
│   ├── axios/
│   └── ...
├── package.json       # Lista de dependencias
├── package-lock.json  # Versiones exactas
└── app.js            # Tu código

El archivo package.json

Define las dependencias de tu proyecto:

json
{
  "name": "mi-app",
  "version": "1.0.0",
  "dependencies": {
    "express": "^4.18.0",
    "axios": "^1.3.0"
  }
}

Sistema de módulos en Node.js

Node.js usa dos sistemas de módulos:

CommonJS (tradicional)

javascript
// Exportar
module.exports = miFuncion;

// Importar
const miFuncion = require('./mi-modulo');

ES Modules (moderno, Node.js 12+)

javascript
// Exportar (necesitas "type": "module" en package.json)
export const miFuncion = () => {};

// Importar
import { miFuncion } from './mi-modulo.js';

Buenas prácticas

  1. No subas node_modules a Git - usa .gitignore

  2. Usa package-lock.json para versiones consistentes

  3. Instala dependencias con --save (ahora es por defecto)

  4. Distingue entre dependencies y devDependencies

    • dependencies: necesarias en producción

    • devDependencies: solo para desarrollo (testing, linting, etc.)

bash
npm install express --save-prod        # dependencies
npm install jest --save-dev           # devDependencies

Comandos útiles

bash
npm init -y                    # Crear package.json
npm install                    # Instalar todas las dependencias
npm install nombre-paquete     # Instalar un paquete
npm uninstall nombre-paquete   # Eliminar un paquete
npm update                     # Actualizar paquetes

Resumen visual

text
Tu Código → require/import → Node.js → Busca en:
                             1. Módulos nativos
                             2. Módulos locales (./archivo)
                             3. node_modules/

¿Hay algún aspecto específico que quieras que profundice más?

Comentarios

Entradas más populares de este blog

Cómo Iniciar un Proyecto Node.js

9-Nuestra Primera Plantilla con EJS

6-Middleware?