Turiu žiniatinklio serverį, parašytą Node.js, ir norėčiau paleisti su konkrečiu aplanku. Nežinau, kaip pasiekti argumentus "JavaScript". Aš'paleidžiu mazgą taip:
$ node server.js folder
čia server.js
yra mano serverio kodas. Node.js pagalba sako, kad tai įmanoma:
$ node -h
Usage: node [options] script.js [arguments]
Kaip galėčiau pasiekti šiuos argumentus JavaScript kalba? Kažkaip nepavyko rasti šios informacijos internete.
Argumentai saugomi process.argv
Štai [mazgo dokumentai apie komandinės eilutės argumentų tvarkymą:] (http://nodejs.org/docs/latest/api/process.html#process_process_argv)
process.argv
yra masyvas, kuriame yra komandinės eilutės argumentai. Pirmasis elementas bus 'node', antrasis elementas bus JavaScript failo pavadinimas. Kiti elementai bus bet kokie papildomi komandinės eilutės argumentai.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Taip bus sukurta:
$ 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
Norėdamas normalizuoti argumentus taip, kaip juos gautų įprasta "javascript" funkcija, tai darau savo node.js apvalkalo scenarijuose:
var args = process.argv.slice(2);
Atkreipkite dėmesį, kad pirmasis argumentas paprastai yra kelias į nodejs, o antrasis argumentas - vykdomo scenarijaus vieta.
Patikrinkite optimist biblioteka, tai daug geriau nei analizuoti komandinės eilutės parinktis rankiniu būdu.
Atnaujinta
Optimist nebenaudojama. Išbandykite yargs, kuri yra aktyvi optimist atmaina.