Módulos
¿Que es un módulo en Node?
Un módulo es un archivo que contiene funciones reutilizables. Su función es evitar la repetitividad de código, facilitar el mantenimiento de código en un solo lugar, y agregar funciones relacionadas según su uso, como por ejemplo un módulo de fechas maneja todas las posibles funciones para convertir, formatear, extraer y realizar funciones aritméticas con fechas, días y horas
Modulos Internos
Node posee algunas librerías internas compiladas dentro del lenguaje que sirven para realizar funciones de sistema como lectura y escritura de archivos, comunicación con servidores web, criptografía, etc
1. Sistema de Archivos
fs
: Manipulación de archivos (lectura/escritura síncrona y asíncrona).fs/promises
(versión con Promesas defs
).path
: Manejo de rutas de archivos y directorios.
2. Operaciones de Red
http
/https
: Crear servidores y clientes HTTP/HTTPS.net
: Operaciones de red TCP/IP y sockets.dgram
: Datagramas UDP (útil para DNS, juegos en red).
3. Sistema y Procesos
os
: Información del sistema operativo (CPU, memoria, etc.).process
: Interactuar con el proceso actual de Node.js.child_process
: Ejecutar procesos hijos (como comandos de shell).worker_threads
: Procesos para operaciones CPU-intensivas (paralelismo).
4. Utilidades
util
: Funciones útiles (herencia, promisify, etc.).events
: Manejo de eventos.stream
: Flujos (streams) para manejar datos contínuos.buffer
: Manipulación de datos binarios.querystring
: Parsear y formatear URLs query strings.url
: Parsear y construir URLs.
5. Criptografía y Seguridad
crypto
: Funciones criptográficas (hash, cifrado, etc.).tls
/https
: Seguridad para conexiones SSL/TLS.
6. Bases de Datos y Comunicación
dns
: Resolución de nombres de dominio.zlib
: Compresión/descompresión (Gzip, Deflate).
7. Temporizadores
timers
: Funciones comosetTimeout
,setInterval
.
8. Pruebas y Depuración
assert
: Validaciones en pruebas unitarias.inspector
: Depuración con el inspector de Node.js.
9. Internacionalización
v8
: Acceso al motor V8 de JavaScript (usado en Node.js).perf_hooks
: Medición de rendimiento.
10. Otros Módulos Útiles
cluster
: Escalar aplicaciones en múltiples núcleos de CPU.repl
: Consola interactiva (Read-Eval-Print Loop).module
: Manejo de módulos personalizados.readline
: Leer entrada de usuario en CLI.vm
: Ejecutar código JavaScript en contextos aislados.
Ejemplo de Uso
const fs = require('fs') // Módulo de archivos
const path = require('path') // Módulo de rutas
// Leer un archivo
fs.readFile(path.join(__dirname, 'ejemplo.txt'), 'utf8', (err, data) => {
if (err) throw err
console.log(data)
})
Notas Importantes
- Estos módulos no requieren instalación (
npm install
). - Se cargan con
require('nombre_modulo')
. - Algunos tienen versiones asíncronas (ej:
fs/promises
).
Módulos externos mas utilizados
- Express - Server framework para web apps
- EJS - Template system para generar páginas webs
- PG - PostgreSQL database manager
¿Qué es NPM?
NPM es el Node Package Manager, o sea el Administrador de Módulos de Node utilizado para instalar o desinstalar módulos en una aplicación. El listado de módulos usados en la aplicación se encuentra en el archivo package.json
y son denominados dependencias
. Aquí tenemos un ejemplo de un archivo package.json
sencillo:
{
"name": "Computeca",
"version": "1.0.0",
"description": "Online programming courses",
"license": "Private",
"author": "Kuyawa",
"main": "index.js",
"dependencies": {
"ejs": "^3.1.10",
"express": "^5.1.0"
}
}
Iniciar una app
Para iniciar una app primero tenemos que crear un directorio, entrar al directorio y luego ejecutar el comando npm init
tipeamos los datos de la app y listo!
$ mkdir myapp
$ cd myapp
$ npm init
Uso de NPM
NPM es usado principalmente para instalar y eliminar módulos. Estos son copiados de la web en el directorio /node_modules
de tu app y agregados a tu lista de dependencias en package.json
$ npm install postgres // Instala modulo postgres
Puedes instalar todos los módulos que quieras, probarlos y luego desinstalarlos si no te sirven
$ npm uninstall postgres // Elimina modulo postgres
Puedes ver una descripción de los módulos en la página https://npmjs.com como por ejemplo el módulo para acceso a bases de datos PostgreSQL en https://npmjs.com/package/postgres