Módulo process de Node.js en detalle
Clase 15 de 20 • Curso de Fundamentos de Node.js
Contenido del curso
Módulos y gestión de paquetes
Módulos nativos en Node.js
- 8

CRUD de archivos con Node.js fs
10:20 min - 9

Script Node.js fs y Whisper API
16:31 min - 10

Cómo implementar transcript audio con OpenAI
06:28 min - 11

Console API en Node.js: métodos básicos
10:22 min - 12

Console.count y console.group en JavaScript
09:16 min - 13

Node.js: módulo os para datos del sistema
04:57 min - 14

Crypto de Node.js: hash SHA-256 completo
05:41 min - 15

Módulo process de Node.js en detalle
Viendo ahora - 16

Módulo timers en Node.js: setTimeout y setInterval
11:05 min - 17

Streams en Node.js para archivos grandes
10:47 min - 18

Buffers en Node.js: crear y transformar datos binarios
06:44 min
Servidores con Node.js
Domina el módulo process de Node.js para leer y controlar el proceso en ejecución con precisión: identifica el pid, el cwd(), la versión de Node.js, la plataforma y arquitectura, consulta variables de entorno, mide uso de memoria, escucha eventos como exit y SIGINT, y crea entradas interactivas con stdin para comandos como “salir”.
¿Qué es process en Node.js y por qué importa?
El módulo process es global y te da acceso directo al estado y control del proceso actual. Con él obtienes información del entorno y gestionas el ciclo de vida: desde imprimir datos clave hasta finalizar el programa de forma limpia. Es la base para crear scripts confiables, seguros y observables.
¿Qué información del proceso puedes leer con keywords como pid, cwd y version?
Process expone propiedades frecuentes para inspección rápida. Ejemplo: imprime id de proceso, directorio actual, versión, plataforma, arquitectura y tiempo de ejecución.
console.log('ID del proceso (pid):', process.pid);
console.log('Directorio actual (cwd):', process.cwd()); // recuerda ejecutarla como función.
console.log('Versión de Node.js:', process.version);
console.log('Plataforma:', process.platform); // p. ej., Darwin.
console.log('Arquitectura:', process.arch); // p. ej., arm.
console.log('Tiempo de ejecución (s):', process.uptime());
- Usa process.cwd() para obtener la carpeta real, no la función sin ejecutar.
- Verás salidas como plataforma “Darwin” y arquitectura “ARM”, según tu sistema.
¿Cómo acceder a variables de entorno con process.env de forma segura?
Accede a valores comunes como PATH, HOME o USERPROFILE, y lee NODE_ENV si está definido. Las variables suelen estar en mayúsculas.
console.log('Variables de entorno:', process.env); // inspección general.
console.log('PATH:', process.env.PATH);
console.log('Perfil de usuario (HOME/USERPROFILE):', process.env.HOME || process.env.USERPROFILE);
console.log('NODE_ENV:', process.env.NODE_ENV ?? 'no definido');
- Ideal para configurar credenciales y rutas sin exponerlas en el código.
- Si una variable no existe, retorna undefined: maneja un valor por defecto.
¿Cómo medir el uso de memoria con memoryUsage?
Además de la configuración, process ofrece métricas de memoria del proceso actual. Útil para monitorear scripts y detectar fugas.
const memory = process.memoryUsage();
console.log('Uso de memoria:', memory);
// Estructura típica:
// {
// rss, // resident set size.
// heapTotal, // heap total.
// heapUsed, // heap utilizado.
// external, // memoria externa.
// arrayBuffers // buffers de arrays.
// }
- Estas cifras vienen en bytes: queda como ejercicio convertirlas a MB para lectura más clara.
- Observa heapUsed para estimar el consumo real de la aplicación.
¿Cómo manejar eventos y la entrada del usuario con stdin?
Con process puedes reaccionar al fin del proceso, a señales del sistema y a lo que escriba el usuario. Esto habilita flujos interactivos limpios y controlados.
¿Qué eventos exit y SIGINT deberías escuchar y por qué?
Atiende el cierre natural del proceso y la interrupción con Control + C para limpiar recursos, guardar estado o registrar auditoría.
process.on('exit', (code) => {
console.log('El proceso está terminado. Código:', code);
});
process.on('SIGINT', () => { // Control + C
console.log('Se recibió la señal de interrupción.');
// aquí puedes limpiar tareas, cerrar conexiones, etc.
process.exit(0);
});
- exit te da el código de salida: úsalo para diagnosticar.
- SIGINT permite terminar de forma controlada en una interrupción manual.
¿Cómo crear un eco interactivo con stdin y un comando “salir”?
Lee lo que escribe el usuario y responde. Normaliza a minúsculas para comparaciones robustas y cierra con process.exit cuando reciba “salir”.
console.log("Escribe algo y presiona Enter o Control + C para salir.");
process.stdin.on('data', (data) => {
const input = data.toString().trim();
if (input.toLowerCase() === 'salir') {
console.log('Comando de salida recibido.');
process.exit(0);
} else {
console.log('Escribiste:', input);
console.log("Escribe 'salir' para terminar o escribe algo más.");
}
});
- Usa stdin para recibir texto del usuario en consola.
- Emplea toLowerCase para tolerar “Salir”, “SALIR” o “salir”.
- Muestra instrucciones claras: guía la interacción y evita ambigüedades.
¿Con qué otras señales o métricas de process te gustaría trabajar en Node.js? Comparte tus ideas y ejemplos en los comentarios.