Jeg har en webserver skrevet i Node.js, og jeg vil gerne starte med en bestemt mappe. Jeg er ikke sikker på, hvordan man får adgang til argumenter i JavaScript. I'm kører node på denne måde:
$ node server.js folder
her server.js
er min serverkode. Node.js hjælp siger, at dette er muligt:
$ node -h
Usage: node [options] script.js [arguments]
Hvordan kan jeg få adgang til disse argumenter i JavaScript? På en eller anden måde var jeg ikke i stand til at finde disse oplysninger på nettet.
Argumenterne gemmes i process.argv
.
Her er [node-dokumentationen om håndtering af kommandolinjeargs:] (http://nodejs.org/docs/latest/api/process.html#process_process_argv)
process.argv
er et array, der indeholder kommandolinjeargumenterne. Det første element vil være 'node', det andet element vil være navnet på JavaScript-filen. De næste elementer er eventuelle yderligere kommandolinjeargumenter.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Dette vil generere:
$ 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
For at normalisere argumenterne som en almindelig javascript-funktion ville modtage, gør jeg dette i mine node.js-shell-scripts:
var args = process.argv.slice(2);
Bemærk, at det første arg normalt er stien til nodejs, og det andet arg er placeringen af det script, som du udfører.
Tjek optimist library, det er meget bedre end at analysere kommandolinjeindstillinger i hånden.
opdatering
Optimist er forældet. Prøv yargs, som er en aktiv fork af optimist.