Ce face process.argv
process.argv este un tablou de șiruri. Primul element este calea completă a executabilului node, al doilea calea completă a scriptului, iar de la al treilea încep argumentele scrise după numele fișierului. De aceea aproape mereu vei vedea process.argv.slice(2).
Toate argumentele sunt șiruri: node scor.mjs 10 dă "10", nu numărul 10. Opțiunile date lui Node.js înaintea fișierului (de exemplu --env-file=.env) nu apar în argv, ci în process.execArgv.
Pentru opțiuni cu nume (--oras Iași, -v) nu le analiza de mână: util.parseArgs din Node.js face asta corect.
Ce returnează
Un tablou de șiruri (string[]).
Exemple
Exemplul 1: Argumente simple
Scriptul nota.mjs primește un nume și o notă. Căile complete din primele două elemente diferă de la calculator la calculator.
// nota.mjs
const [nume = "Anonim", nota = "0"] = process.argv.slice(2);
console.log(`${nume} a luat nota ${Number(nota)}.`);
console.log(process.argv.length, "elemente în process.argv");
// în terminal:
// node nota.mjs Ana 10
// node nota.mjs
Ieșire în terminal
Ana a luat nota 10.
4 elemente în process.argv
Anonim a luat nota 0.
2 elemente în process.argv
Exemplul 2: argv și execArgv
Exemplele de pe această pagină sunt rulate cu node --no-warnings=ExperimentalWarning exemplu.mjs, fără argumente. Opțiunea lui Node.js apare în execArgv, iar din calea scriptului afișăm doar numele fișierului.
import path from "node:path";
console.log(path.basename(process.argv[1]));
console.log(process.argv.slice(2));
console.log(process.execArgv);
Rezultat
exemplu.mjs
[]
[ '--no-warnings=ExperimentalWarning' ]
Greșeli frecvente
- Citești argumentul cu
process.argv[0]sau[1]: acelea sunt căile lui node și ale scriptului. Primul argument al tău esteprocess.argv[2]. - Aduni argumentele direct:
"2" + "3"dă"23". Transformă-le cuNumber()și verificăNumber.isNaN. - Un argument cu spații ajunge rupt în mai multe:
node salut.mjs Ana Mariadă două elemente. Pune-l între ghilimele în terminal:"Ana Maria".
Comenzi înrudite
util.parseArgs: Citește opțiunile din linia de comandă (–port 8080, -v, –fara-culori) fără pachete ca yargs sau commander.process.env: Obiectul cu variabilele de mediu ale procesului: configurări ca PORT, NODE_ENV sau chei de API, mereu ca șiruri.process.exit / process.exitCode: Stabilește codul de ieșire al scriptului (0 = succes) sau oprește procesul imediat cu process.exit.node script.js: Rulează un fișier JavaScript în terminal sau o bucată de cod dată direct în comandă (-e, -p).