Sentry Answers>Node.js>

How do I pass command line arguments to a Node.js program?

How do I pass command line arguments to a Node.js program?

Naveera A.

The Problem

How do we pass command-line arguments to a Node.js script or program, and how can we access them in Node.js?

The Solution

Command-line arguments are a great way to provide additional information and/or customization to a Node.js script.

Passing the Arguments

We can pass any number of command-line arguments while invoking a Node.js application by typing them in after the name of the file, like so:

Click to Copy
node example.js a b c d

Arguments can be standalone or they can be a key-value pair:

Click to Copy
node example.js letter=a

Retrieving the Arguments

Node.js has a built-in object called process. This object exposes an array argv, which contains all the arguments passed from the command-line.

But first, let’s take a look at what happens when we launch a Node.js process without any arguments.

Let’s create a file index.js and add the following code to it:

Click to Copy
process.argv.forEach((value, index) => { console.log(index, value); });

When we run the following command:

Click to Copy
node index.js

We get the following output in our terminal:

Click to Copy
0 \path\to\node.exe 1 \path\to\index.js

There are two things to note:

  • The array argv exists even if we do not pass any additional arguments to our Node.js process.
  • The first two elements of this array always contain the path to our node binary and the path to our script.

Let’s re-run the script, but this time with some arguments:

Click to Copy
node index.js one two three env=dev

And this time we get:

Click to Copy
0 \path\to\node.exe 1 \path\to\index.js 2 one 3 two 4 three 5 env=dev

In order to get only the additional arguments we can create a new array and exclude the first two elements like so:

Click to Copy
const arguments = process.argv.slice(2); arguments.forEach((value, index) => { console.log(index, value); });

And we get the following:

Click to Copy
0 one 1 two 2 three 3 env=dev
  • SentryWorkshop: Debugging your Node.js Project With Sentry (opens in a new tab)
  • Syntax.fmListen to the Syntax Podcast (opens in a new tab)
  • Community SeriesIdentify, Trace, and Fix Endpoint Regression Issues (opens in a new tab)
  • ResourcesBackend Error Monitoring 101 (opens in a new tab)
  • Syntax.fm logo
    Listen to the Syntax Podcast (opens in a new tab)

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.