Mám webový server napísaný v Node.js a chcel by som ho spustiť s konkrétnym priečinkom. Nie som si istý, ako pristupovať k argumentom v JavaScripte. Spúšťam node takto:
$ node server.js folder
tu server.js
je môj serverový kód. Nápoveda k Node.js hovorí, že je to možné:
$ node -h
Usage: node [options] script.js [arguments]
Ako by som sa dostal k týmto argumentom v JavaScripte? Akosi sa mi nepodarilo nájsť túto informáciu na webe.
Argumenty sú uložené v súbore process.argv
Tu sú dokumenty uzla o spracovaní argumentov príkazového riadku:
process.argv
je pole obsahujúce argumenty príkazového riadku. Prvým prvkom bude 'node', druhým prvkom bude názov súboru JavaScript. Ďalšími prvkami budú všetky ďalšie argumenty príkazového riadka.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Týmto sa vygeneruje:
$ 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
Ak chcete normalizovať argumenty tak, ako by ich dostávala bežná javascriptová funkcia, robím to vo svojich shell skriptov node.js:
var args = process.argv.slice(2);
Všimnite si, že prvý arg je zvyčajne cesta k nodejs a druhý arg je umiestnenie skriptu, ktorý spúšťate.
Pozrite sa na optimist library, je to oveľa lepšie ako ručné analyzovanie možností príkazového riadku.
Aktualizácia
Optimist je zastaraný. Skúste yargs, čo je aktívna odnož optimistu.