Knotenprozessobjekt erklärt

Das processObjekt in Node.js ist ein globales Objekt, auf das in jedem Modul zugegriffen werden kann, ohne dass dies erforderlich ist. In Node.js werden nur sehr wenige globale Objekte oder Eigenschaften bereitgestellt, und dies processist eines davon. Es ist eine wesentliche Komponente im Node.js-Ökosystem, da es verschiedene Informationssätze zur Laufzeit eines Programms bereitstellt.

Um zu erforschen, werden wir eine seiner Eigenschaften verwenden, die genannt wird process.versions. Diese Eigenschaft gibt Auskunft über die von uns installierte Node.js-Version. Es muss mit -pFlag verwendet werden.

$ 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' }

Eine weitere Eigenschaft, die Sie überprüfen können process.release, ist dieselbe wie der Befehl, $ node --versionden wir bei der Installation von Node.js verwendet haben. Aber die Ausgabe dieses Mal wird detaillierter sein.

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' }

Dies sind einige der verschiedenen Befehle, die wir in einer Befehlszeile verwenden können, um auf Informationen zuzugreifen, die sonst kein Modul bereitstellen kann.

Dieses processObjekt ist eine Instanz der EventEmitter-Klasse. Es enthält seine eigenen vordefinierten Ereignisse, mit exitdenen festgestellt werden kann, wann ein Programm in Node.js seine Ausführung abgeschlossen hat.

Führen Sie das folgende Programm aus, und Sie können feststellen, dass das Ergebnis einen Statuscode enthält 0. In Node.js bedeutet dieser Statuscode, dass ein Programm erfolgreich ausgeführt wurde.

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

Ausgabe des obigen Programms:

Execution Completed Exited with status code: 0

Processbietet auch verschiedene Eigenschaften für die Interaktion. Einige von ihnen können in einer Knotenanwendung verwendet werden, um ein Gateway für die Kommunikation zwischen der Knotenanwendung und einer beliebigen Befehlszeilenschnittstelle bereitzustellen. Dies ist sehr nützlich, wenn Sie eine Befehlszeilenanwendung oder ein Dienstprogramm mit Node.js erstellen

  • process.stdin: ein lesbarer Stream
  • process.stdout: ein beschreibbarer Stream
  • process.stderr: Ein Wriatable-Stream zum Erkennen von Fehlern

Mit können argvSie immer auf Argumente zugreifen, die in einer Befehlszeile übergeben werden. argvist ein Array, das Node selbst als erstes Element und den absoluten Pfad der Datei als zweites Element hat. Ab dem dritten Element kann es so viele Argumente haben, wie Sie möchten.

Probieren Sie das folgende Programm aus, um mehr darüber zu erfahren, wie Sie diese verschiedenen Eigenschaften und Funktionen verwenden können.

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

Wenn Sie den obigen Code mit dem folgenden Befehl ausführen, erhalten Sie die Ausgabe und die ersten beiden Elemente argvwerden gedruckt.

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