Jeg har en webserver skrevet i Node.js, og jeg vil gjerne starte med en bestemt mappe. Jeg er ikke sikker på hvordan jeg får tilgang til argumenter i JavaScript. Jeg kjører node som dette:
$ node server.js folder
her server.js
er min serverkode. Node.js-hjelpen sier at dette er mulig:
$ node -h
Usage: node [options] script.js [arguments]
Hvordan får jeg tilgang til disse argumentene i JavaScript? På en eller annen måte klarte jeg ikke å finne denne informasjonen på nettet.
Argumentene lagres i process.argv
.
Her er nodedokumentene om håndtering av kommandolinjeargumenter:
process.argv
er en matrise som inneholder kommandolinjeargumentene. Det første elementet vil være 'node', det andre elementet vil være navnet på JavaScript-filen. De neste elementene vil være eventuelle ytterligere 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 å normalisere argumentene som en vanlig javascript-funksjon ville motta, gjør jeg dette i mine node.js shell-skript:
var args = process.argv.slice(2);
Merk at den første arg er vanligvis banen til nodejs, og den andre arg er plasseringen av skriptet du kjører.
Sjekk ut optimist library, det er mye bedre enn å analysere kommandolinjealternativer for hånd.
Oppdatering
Optimist er utdatert. Prøv yargs som er en aktiv fork av optimist.