Nuestros mejores investigadores agotaron sus provisiones de café, en su búsqueda todo el tiempo por la resolución, hasta que Noé encontró la solución en GitHub por lo tanto hoy la compartimos con nosotros.
Solución:
haz un rapido console.log(process.argv)
e inmediatamente detectará el problema.
Empieza el 2 porque process.argv
contiene la invocación completa de la línea de comandos:
process.argv = ['node', 'yourscript.js', ...]
Elementos 0
y 1
no son “argumentos” desde el punto de vista del script, pero son para el shell que invocó el script.
Comienza con 2 porque el código se ejecutará con
node myprogram.js firstarg secondarg
Asi que
process.argv[0] == "node"
process.argv[1] == "myprogram.js"
process.argv[2] == "firstarg"
documentos en línea
Su programa imprime la suma de los valores numéricos de los “argumentos de la línea de comando” proporcionados al script del nodo.
Por ejemplo:
$ /usr/local/bin/node ./sum-process-argv.js 1 2 3
6
De la documentación de la API de Node.js para process.argv
:
Un array que contiene los argumentos de la línea de comandos. El primer elemento será ‘nodo’, el segundo elemento será el nombre del archivo JavaScript. Los siguientes elementos serán cualquier argumento de línea de comando adicional.
En los ejemplos anteriores esos valores son:
process.argv[0] == '/usr/local/bin/node'
process.argv[1] == '/Users/maerics/src/js/sum-process-argv.js'
process.argv[2] == '1'
process.argv[3] == '2'
process.argv[4] == '3'
Véase también el Number(...)
función/constructor para JavaScript.
Más adelante puedes encontrar las críticas de otros desarrolladores, tú incluso puedes dejar el tuyo si lo deseas.