We use process.argv to get information typed by the user when starting a Node.js program. It helps the program know what to do based on user input.
process.argv for command line arguments in Node.js
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
Node.js
const args = process.argv; // args is an array of strings // args[0] is the path to the Node.js executable // args[1] is the path to your script // args[2] and onwards are the user inputs
process.argv is always an array of strings.
The first two items are fixed: node path and script path. User inputs start from index 2.
Examples
Node.js
console.log(process.argv);
Node.js
const name = process.argv[2]; console.log(`Hello, ${name}!`);
Node.js
const args = process.argv.slice(2);
args.forEach(arg => console.log(arg));Sample Program
This program shows how to read all user inputs after the script name and print them nicely. If no inputs are given, it tells the user.
Node.js
const args = process.argv.slice(2); if (args.length === 0) { console.log('No arguments provided.'); } else { console.log('You passed these arguments:'); args.forEach((arg, index) => { console.log(`${index + 1}: ${arg}`); }); }
Important Notes
Always remember the first two items in process.argv are not user inputs.
Use slice(2) to get only the user arguments.
Arguments are always strings, so convert them if you expect numbers.
Summary
process.argv lets your Node.js program read what the user types when starting it.
The first two items are fixed paths; user inputs start from index 2.
Use slice(2) to get only the user arguments for easier use.
Practice
1. What does
process.argv contain in a Node.js program?easy
Solution
Step 1: Understand what
process.argvholdsprocess.argvis an array that contains the full command line arguments used to start the Node.js process.Step 2: Identify the contents of the array
The first element is the path to the Node.js executable, the second is the path to the script file, and the rest are user inputs.Final Answer:
An array of command line arguments including Node.js path and script path -> Option AQuick Check:
process.argv includes Node and script paths [OK]
Hint: Remember first two items are paths, user args start at index 2 [OK]
Common Mistakes:
- Thinking process.argv only has user inputs
- Confusing process.argv with environment variables
- Assuming process.argv is a string, not an array
2. Which of the following is the correct way to get only the user input arguments from
process.argv?easy
Solution
Step 1: Recall the structure of
The first two elements are fixed paths: Node.js executable and script file.process.argvStep 2: Use
Usingslice(2)to skip these and get user inputsprocess.argv.slice(2)returns an array starting from the third element, which are the user arguments.Final Answer:
process.argv.slice(2) -> Option CQuick Check:
Slice from index 2 to get user args [OK]
Hint: Slice from 2 to skip Node and script paths [OK]
Common Mistakes:
- Using slice(0) returns all including paths
- Using slice(1) includes script path as argument
- Using slice(3) skips first user argument
3. What will be the output of this Node.js script if run as
node script.js hello world?
console.log(process.argv.slice(2));
medium
Solution
Step 1: Understand the command line input
The commandnode script.js hello worldpasses "hello" and "world" as user arguments.Step 2: Analyze
This slices the array to exclude the first two elements (node path and script path), leaving only user inputs.process.argv.slice(2)Final Answer:
["hello", "world"] -> Option BQuick Check:
Slice(2) returns only user args [OK]
Hint: Slice(2) returns only user inputs, not paths [OK]
Common Mistakes:
- Including node and script paths in output
- Confusing array contents with strings
- Expecting syntax error for valid code
4. Identify the error in this code snippet that tries to print user arguments:
console.log(process.argv[0]);
medium
Solution
Step 1: Check what
The first element is the path to the Node.js executable, not user input.process.argv[0]holdsStep 2: Understand why this is a mistake
To get user arguments, you must start from index 2, so using index 0 prints the wrong value.Final Answer:
It prints the Node.js executable path, not user arguments -> Option DQuick Check:
Index 0 is Node path, not user args [OK]
Hint: User args start at index 2, not 0 [OK]
Common Mistakes:
- Assuming index 0 is first user argument
- Expecting runtime error for valid index
- Confusing script path with user input
5. You want to write a Node.js script that sums two numbers passed as command line arguments. Which code correctly extracts and sums the inputs?
const args = process.argv.slice(2); const sum = Number(args[0]) + Number(args[1]); console.log(sum);
hard
Solution
Step 1: Extract user inputs correctly
Usingprocess.argv.slice(2)gets only user arguments, which are strings representing numbers.Step 2: Convert strings to numbers and sum
UsingNumber()converts string inputs to numbers, allowing correct addition.Final Answer:
Correctly sums two user inputs as numbers -> Option AQuick Check:
Slice(2) + Number() converts and sums inputs [OK]
Hint: Slice(2) then Number() to convert strings to numbers [OK]
Common Mistakes:
- Not slicing to get user inputs
- Adding strings without conversion causing concatenation
- Assuming Number() cannot convert numeric strings
