Ik heb een webserver geschreven in Node.js en ik zou willen starten met een specifieke map. Ik'ben niet zeker hoe ik toegang krijg tot argumenten in JavaScript. Ik'm run node als volgt:
$ node server.js folder
hier server.js
is mijn server code. Node.js help zegt dat dit mogelijk is:
$ node -h
Usage: node [options] script.js [arguments]
Hoe krijg ik toegang tot deze argumenten in JavaScript? Op de een of andere manier heb ik deze informatie niet op het web kunnen vinden.
De argumenten worden opgeslagen in process.argv
Hier zijn de node docs over het omgaan met commandoregel args:
process.argv
is een array die de commandoregel argumenten bevat. Het eerste element is 'node' het tweede element is de naam van het JavaScript bestand. De volgende elementen zijn eventuele extra commandoregel argumenten.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Dit zal genereren:
$ 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
Om de argumenten te normaliseren zoals een gewone javascript functie zou ontvangen, doe ik dit in mijn node.js shell scripts:
var args = process.argv.slice(2);
Merk op dat de eerste arg meestal het pad naar nodejs is, en de tweede arg de locatie van het script dat je aan het uitvoeren bent.
Kijk eens naar optimist library, het is veel beter dan commandoregelopties met de hand te parsen.
Update
Optimist is deprecated. Probeer yargs dat is een actieve fork van optimist.