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
  • Syntax.fmListen to the Syntax Podcast
  • Community SeriesIdentify, Trace, and Fix Endpoint Regression Issues
  • ResourcesBackend Error Monitoring 101
  • Syntax.fm logo
    Listen to the Syntax Podcast

    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 100,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.

© 2024 • Sentry is a registered Trademark of Functional Software, Inc.