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.
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 + Cconsole.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.