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