Minulla on Node.js -ohjelmalla kirjoitettu verkkopalvelin, ja haluaisin käynnistää sen tietyssä kansiossa. En ole varma, miten argumentteja käytetään JavaScriptissä. I'm ajaa nodea näin:
$ node server.js folder
Tässä server.js
on palvelinkoodini. Node.js:n ohjeessa sanotaan, että tämä on mahdollista:
$ node -h
Usage: node [options] script.js [arguments]
Miten pääsisin käsiksi näihin argumentteihin JavaScriptissä? Jotenkin en löytänyt tätä tietoa netistä.
Argumentit tallennetaan tiedostoon process.argv
.
Tässä ovat solmun dokumentit komentorivin argumenttien käsittelystä:
process.argv
on joukko, joka sisältää komentoriviargumentit. Ensimmäinen elementti on 'node', toinen elementti on JavaScript-tiedoston nimi. Seuraavat elementit ovat mahdolliset muut komentoriviargumentit.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Tämä tuottaa:
$ 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
Normaalisoidakseni argumentit kuten tavallinen javascript-funktio saisi, teen tämän node.js-komentosarjoissani:
var args = process.argv.slice(2);
Huomaa, että ensimmäinen arg on yleensä polku nodejs:ään ja toinen arg on suoritettavan skriptin sijainti.
Tutustu optimist-kirjastoon, se on paljon parempi kuin komentorivioptioiden jäsentäminen käsin.
Update
Optimist on vanhentunut. Kokeile yargs, joka on optimistin aktiivinen haara.