Knude Procesobjekt forklaret

Det processobjekt i node.js er en global objekt, der kan tilgås inde i et modul uden at kræve det. Der er meget få globale objekter eller egenskaber leveret i Node.js og processer en af ​​dem. Det er en vigtig komponent i Node.js-økosystemet, da det indeholder forskellige informationssæt om et programs kørselstid.

For at udforske bruger vi en af ​​dens egenskaber, som kaldes process.versions. Denne egenskab fortæller os de oplysninger om Node.js-version, vi har installeret. Det skal bruges med -pflag.

$ node -p "process.versions" # output { http_parser: '2.8.0', node: '8.11.2', v8: '6.2.414.54', uv: '1.19.1', zlib: '1.2.11', ares: '1.10.1-DEV', modules: '57', nghttp2: '1.29.0', napi: '3', openssl: '1.0.2o', icu: '60.1', unicode: '10.0', cldr: '32.0', tz: '2017c' }

En anden egenskab, du kan kontrollere, er, process.releaseat den er den samme som kommandoen, $ node --versionsom vi brugte, da vi installerede Node.js. Men produktionen bliver denne gang mere detaljeret.

node -p "process.release" # output { name: 'node', lts: 'Carbon', sourceUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2.tar.gz', headersUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2-headers.tar.gz' }

Dette er nogle af de forskellige kommandoer, som vi kan bruge i en kommandolinje til at få adgang til oplysninger, som ellers intet modul kan levere.

Dette processobjekt er en forekomst af klassen EventEmitter. Det indeholder sine egne foruddefinerede begivenheder, som f.eks. exitKan bruges til at vide, hvornår et program i Node.js har afsluttet sin udførelse.

Kør nedenstående program, og du kan se, at resultatet kommer med statuskode 0. I Node.js betyder denne statuskode, at et program har kørt med succes.

process.on('exit', code => { setTimeout(() => { console.log('Will not get displayed'); }, 0); console.log('Exited with status code:', code); }); console.log('Execution Completed');

Output af ovenstående program:

Execution Completed Exited with status code: 0

Processgiver også forskellige egenskaber at interagere med. Nogle af dem kan bruges i en Node-applikation til at give en gateway til at kommunikere mellem Node-applikationen og enhver kommandolinjegrænseflade. Dette er meget nyttigt, hvis du bygger et kommandolinjeprogram eller hjælpeprogram ved hjælp af Node.js

  • process.stdin: en læsbar strøm
  • process.stdout: en skrivbar strøm
  • process.stderr: en skrivbar strøm til at genkende fejl

Brug argvkan du altid få adgang til argumenter, der sendes på en kommandolinje. argver en matrix, der har Node selv som det første element og den absolutte sti for filen som det andet element. Fra det tredje element kan det have så mange argumenter, som du vil.

Prøv nedenstående program for at få mere indsigt i, hvordan du kan bruge disse forskellige egenskaber og funktioner.

process.stdout.write('Hello World!' + '\n'); process.argv.forEach(function(val, index, array) { console.log(index + ': ' + val); });

Hvis du kører ovenstående kode med følgende kommando, får du output, og de første to elementer argver udskrevet.

$ node test.js # output Hello World! 0: /usr/local/bin/node 1: /Users/amanhimself/Desktop/articles/nodejs-text-tuts/test.js