Mam serwer WWW napisany w Node.js i chciałbym go uruchomić z określonym folderem. I'm nie jest pewien, jak uzyskać dostęp do argumentów w JavaScript. I'm uruchomić węzeł w ten sposób:
$ node server.js folder
tutaj server.js
jest moim kodem serwera. Pomoc Node.js mówi, że jest to możliwe:
$ node -h
Usage: node [options] script.js [arguments]
W jaki sposób uzyskałbym dostęp do tych argumentów w JavaScript? Jakoś nie udało mi się znaleźć tych informacji w sieci.
Argumenty przechowywane są w process.argv
.
Tutaj są dokumenty węzła dotyczące obsługi argumentów linii poleceń:
process.argv
jest tablicą zawierającą argumenty wiersza poleceń. Pierwszym elementem będzie 'node', drugim elementem będzie nazwa pliku JavaScript. Następnymi elementami będą wszelkie dodatkowe argumenty wiersza poleceń.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Spowoduje to wygenerowanie:
$ 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
Aby znormalizować argumenty tak, jak otrzymałaby zwykła funkcja javascript, robię to w moich skryptach powłoki node.js:
var args = process.argv.slice(2);
Zauważ, że pierwszym argumentem jest zwykle ścieżka do nodejs, a drugim argumentem jest lokalizacja skryptu, który wykonujesz.
Sprawdź optimist library, jest o wiele lepsza niż ręczne parsowanie opcji linii poleceń.
Uaktualnienie
Optimist jest przestarzały. Spróbuj yargs, który jest aktywnym forkiem optimista.