Skicka argument från kommandoraden till ett Node-skript

Du kan skicka valfritt antal argument när du anropar en Node.js-applikation med hjälp av

node app.js

Argument kan vara fristående eller ha en nyckel och ett värde.

Till exempel:

node app.js flavio

eller

node app.js name=flavio

Detta ändrar hur du kommer att hämta detta värde i nodkoden.

Sättet du hämtar det är att använda process objekt inbyggt i Node.

Den visar en argv egenskap, som är en array som innehåller alla argument för kommandoradsanrop.

Det första argumentet är den fullständiga sökvägen till node kommando.

Det andra elementet är hela sökvägen till filen som körs.

Alla ytterligare argument finns från den tredje positionen framöver.

Du kan iterera över alla argument (inklusive nodsökvägen och filsökvägen) med en loop:

process.argv.forEach((val, index) => {
  console.log(`${index}: ${val}`)
})

Du kan bara få de ytterligare argumenten genom att skapa en ny array som exkluderar de två första parametrarna:

const args = process.argv.slice(2)

Om du har ett argument utan ett indexnamn, så här:

node app.js flavio

du kan komma åt den med hjälp av

const args = process.argv.slice(2)
args[0]

I detta fall:

node app.js name=flavio

args[0] är name=flavio , och du behöver toparse det. Det bästa sättet att göra det är att använda minimist bibliotek, som hjälper till att hantera argument:

const args = require('minimist')(process.argv.slice(2))
args['name'] //flavio