Could someone explain what "process.argv" means in node.js please?
It starts with 2 because the code will be run with
node myprogram.js firstarg secondarg
So
process.argv[0] == "node"
process.argv[1] == "myprogram.js"
process.argv[2] == "firstarg"
Online docs
Your program prints the sum of the numerical values of the "command line arguments" provided to the node script.
For example:
$ /usr/local/bin/node ./sum-process-argv.js 1 2 3
6
From the Node.js API documentation for process.argv
:
An array containing the command line arguments. The first element will be 'node', the second element will be the name of the JavaScript file. The next elements will be any additional command line arguments.
In the above examples those values are:
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'
See also the Number(...)
function/contructor for JavaScript.
Do a quick console.log(process.argv)
and you'll immediately spot the problem.
It starts on 2 because process.argv
contains the whole command-line invocation:
process.argv = ['node', 'yourscript.js', ...]
Elements 0
and 1
are not "arguments" from the script's point of view, but they are for the shell that invoked the script.