JavaScript:
Lectura de argumentos de línea de comandos
Cómo:
Node.js te da acceso a los argumentos de la línea de comandos a través de process.argv
. Vamos directo al código:
// myscript.js
// Imprimimos todos los argumentos de la línea de comandos
process.argv.forEach((val, index) => {
console.log(`${index}: ${val}`);
});
Si corres este script con:
node myscript.js hola mundo
obtendrías:
0: path/to/node.exe
1: /path/to/myscript.js
2: hola
3: mundo
Para ignorar los dos primeros argumentos (que son el propio Node y el script), haz esto:
// Solo argumentos de usuario
const userArgs = process.argv.slice(2);
console.log(userArgs);
Con el mismo comando de antes, ahora verías:
[ 'hola', 'mundo' ]
Análisis Profundo
Antes de Node.js, leíamos parámetros en la web con query strings o en otros entornos, con APIs específicas del lenguaje; pero Node.js simplificó todo con process.argv
.
Si necesitas algo más robusto, hay bibliotecas como yargs
o commander
que te ayudan a parsear los argumentos de manera más sofisticada y con menos código propio.
Para acceder a variables de entorno, usarías process.env
. Ambos, process.argv
y process.env
, son parte de la API global de Node.js, por lo que no requieren require
.
Ver También
- Documentación de Node.js para
process.argv
: https://nodejs.org/docs/latest/api/process.html#process_process_argv yargs
GitHub repo: https://github.com/yargs/yargscommander
GitHub repo: https://github.com/tj/commander.js