Node.js es un entorno de ejecucion JavaScript construido sobre el motor V8 de Chrome que ejecuta codigo asincrono basado en eventos en servidores.
Variables Globales
Variables globales comunes a nivel de modulo en CommonJS:
__filename; // Ruta absoluta del archivo del modulo actual
__dirname; // Ruta absoluta del directorio del modulo actual
Subprocesos (Child Processes)
child_process.exec()
Almacena en bufer la salida del proceso y pasa stdout/stderr a una devolucion de llamada (ideal para scripts pequenos):
const { exec } = require('child_process');
exec('ls -la | grep .js', (error, stdout, stderr) => {
if (error) {
console.error(`Execution error: ${error.message}`);
return;
}
console.log(`Output: ${stdout}`);
});
child_process.spawn()
Transmite datos del proceso en tiempo real sin almacenamiento en bufer (ideal para procesos de larga duracion y salidas extensas):
const { spawn } = require('child_process');
// Heredar stdin/stdout/stderr directamente en la terminal
const child = spawn('npm', ['test'], { stdio: 'inherit' });
child.on('error', (err) => {
if (err.code === 'ENOENT') console.error('Ejecutable no encontrado');
if (err.code === 'EACCES') console.error('Permiso denegado');
});
child.on('exit', (code, signal) => {
console.log(`El proceso termino con el codigo ${code}`);
});
Formateo e Inspeccion (util.inspect)
const util = require('util');
// Inspeccionar objetos complejos en profundidad con resaltado de sintaxis
const output = util.inspect(complexObject, {
showHidden: false,
depth: null,
colors: true
});
process.stdout.write(output + '\n');