Kako programu Node.js posredujem argumente ukazne vrstice?

Imam spletni strežnik, napisan v Node.js, in rad bi ga zagnal z določeno mapo. Nisem prepričan, kako dostopati do argumentov v jeziku JavaScript. Node zaganjam na naslednji način:

$ node server.js folder

tukaj server.js je koda mojega strežnika. Node.js pomoč pravi, da je to mogoče:

$ node -h
Usage: node [options] script.js [arguments]

Kako bi lahko dostopal do teh argumentov v jeziku JavaScript? Nekako nisem mogel najti teh informacij na spletu.

Rešitev

Standardna metoda (brez knjižnice)

Argumenti so shranjeni v process.argv

Tukaj so [dokumentacija vozlišča o ravnanju z args ukazne vrstice:] (http://nodejs.org/docs/latest/api/process.html#process_process_argv)

process.argv je polje, ki vsebuje argumente ukazne vrstice. Prvi element je 'node', drugi element pa je ime datoteke JavaScript. Naslednji elementi so morebitni dodatni argumenti ukazne vrstice.

// print process.argv
process.argv.forEach(function (val, index, array) {
  console.log(index + ': ' + val);
});

To bo ustvarilo:

$ node process-2.js one two=three four
0: node
1: /Users/mjr/work/node/process-2.js
2: one
3: two=three
4: four
Komentarji (8)

Za normalizacijo argumentov, kot bi jih prejela običajna funkcija javascript, to naredim v svojih skriptih node.js shell:

var args = process.argv.slice(2);

Upoštevajte, da je prvi argument običajno pot do nodejs, drugi pa lokacija skripte, ki jo izvajate.

Komentarji (12)

Optimist (vozlišče-optimist)

Preverite knjižnico optimist, saj je veliko boljša od ročnega razčlenjevanja možnosti ukazne vrstice.

Posodobitev

Optimist je zastarel. Poskusite yargs, ki je aktivna vilica optimista.

Komentarji (4)