Heim > Web-Frontend > js-Tutorial > Das Prozessobjekt in Node.js verstehen

Das Prozessobjekt in Node.js verstehen

青灯夜游
Freigeben: 2020-12-01 17:36:24
nach vorne
3732 Leute haben es durchsucht

Das Prozessobjekt in Node.js verstehen

Verwandte Empfehlungen: „node js-Tutorial

Das Prozessobjekt ist eine globale Variable und eine EventEmitter-Instanz, die Informationen und Betriebsmethoden des aktuellen Node.js-Prozesses bereitstellt

Systeminformationen

Prozess Objekt Stellt Attribute für die Rückgabe wichtiger Systeminformationen bereit:

  • Titel: Prozessname, Standardwertknoten. Das Programm kann geändert werden, um das Fehlerprotokoll klarer zu gestalten.
  • pid: aktuelle Prozess-PID.
  • ppid: übergeordnetes Element des aktueller Prozess Prozess-pid
  • Plattform: Das Betriebssystem, auf dem der Prozess ausgeführt wird (aix, drawin, freebsd, linux, openbsd, sunos, win32)
  • version: Node.js-Version
  • env: Alle Umgebungsvariablen des aktuellen Shell

stdin & stdout

Node.js und Standard-Interaktionsobjekte für Eingabe- und Ausgabegeräte werden ebenfalls über das Prozessobjekt bereitgestellt

process.stdin.pipe(process.stdout)
Nach dem Login kopieren

Eine einfache Codezeile kann den Konsoleneingabeinhalt auf der Konsole so ausdrucken, wie er ist

Ausführungsinformationen

process.execPath

process.execPath-Eigenschaft gibt den absoluten Pfad der Node-Binärdatei zurück, die das aktuelle Skript ausführt.

process.argv

process.argv-Eigenschaft gibt ein Array zurück, dessen Inhalt sind die Parameter beim Ausführen des Skripts, aber die ersten beiden des Arrays sind festgelegt.

  • Der absolute Pfad der Knotenbinärdatei, die das aktuelle Skript ausführt.

  • Der absolute Pfad der aktuellen Ausführungsdatei process.js

    console.log(process.argv);
    Nach dem Login kopieren
    node process.js a --b=2
    
    [
      '/usr/local/bin/node',
      '/Users/undefined/node-demo/process.js',
      'a',
      '--b=2'
    ]
    Nach dem Login kopieren

    process.execArgv

process Das execArgv-Attribut gibt ein Array zurück, dessen Mitglieder die Befehlszeilenparameter zwischen der ausführbaren Node-Datei und der Skriptdatei sind Ausführen des Skripts auf der Befehlszeile

process.js

console.log(process.execArgv);
Nach dem Login kopieren
node --inspect process.js

[ '--inspect' ]
Nach dem Login kopieren

process.execArgv

process.execArgv 属性返回一个数组,成员是命令行下执行脚本时,在 Node 可执行文件与脚本文件之间的命令行参数

process.js

process.on('exit', (code) => {
  console.log(`退出码: ${code}`);
});
Nach dem Login kopieren
process.on('uncaughtException', function (err) {
  console.error(err.stack);
});
Nach dem Login kopieren

常用操作方法

  • process.chdir():切换工作目录到指定目录
  • process.cwd():返回运行当前脚本的工作目录的路径,也就是执行 node 命令时候的目录
  • process.exit():退出当前进程
  • process.memoryUsage():返回 Node.js 进程的内存使用情况

进程事件

process 对象是 EventEmitter 对象实例,可以监听一些系统核心事件, 常使用的有

exit

当 Node.js 进程因以下原因之一即将退出时,则会触发 exit 事件:

  • 显式调用 process.exit() 方法
  • Node.js 事件循环不再需要执行任何其他工作

此时无法阻止退出事件循环,并且一旦所有 exit 事件的监听器都已完成运行时,Node.js 进程将终止

process.on('beforeExit', (code) => {
  console.log('进程 beforeExit 事件的代码: ', code);
});

process.on('exit', (code) => {
  console.log('进程 exit 事件的代码: ', code);
});

console.log('此消息最新显示');

// 打印:
// 此消息最新显示
// 进程 beforeExit 事件的代码: 0
// 进程 exit 事件的代码: 0
Nach dem Login kopieren

uncaughtException

当前进程抛出一个没有被捕捉的错误时,会触发uncaughtException事件

process.on('message', (m) => {
  console.log('子进程收到消息', m);
});
Nach dem Login kopieren

beforeExit

当 Node.js 清空其事件循环并且没有其他工作要安排时,会触发 beforeExit 事件。 通常 Node.js 进程将在没有调度工作时退出,但是在 beforeExit 事件上注册的监听器可以进行异步调用使 Node.js 进程继续

rrreee

message

如果使用 IPC 通道 fork Node.js 进程,子进程收到父进程使用 childprocess.send() 发送的消息,就会触发 messageprocess.js

rrreeerrreee

Common Operations Methods

process.chdir(): Wechseln Sie das Arbeitsverzeichnis zum angegebenen Verzeichnis

process.cwd(): Gibt den Pfad zum Arbeitsverzeichnis zurück, in dem das aktuelle Skript ausgeführt wird. Dies ist das Verzeichnis, in dem der Knotenbefehl ausgeführt wird.process .exit(): Beendet den aktuellen Prozess

🎜process.memoryUsage (): Gibt die Speichernutzung des Node.js-Prozesses zurück🎜🎜🎜

Prozessereignis🎜🎜Das Prozessobjekt ist eine EventEmitter-Objektinstanz und kann überwacht werden. Einige häufig verwendete Kernsystemereignisse sind 🎜 🎜

exit🎜🎜Wenn der Node.js-Prozess aus einem der folgenden Gründe beendet werden soll, wird das exit-Ereignis ausgelöst: 🎜 🎜🎜Expliziter Aufruf von process.exit()-Methode 🎜🎜Die Node.js-Ereignisschleife muss keine zusätzliche Arbeit mehr ausführen 🎜🎜🎜Es gibt keine Möglichkeit, das Beenden der Ereignisschleife zu diesem Zeitpunkt zu verhindern, und wenn alle exit Wenn alle Ereignis-Listener ausgeführt wurden, wird der Node.js-Prozess beendet🎜rrreee

uncaughtException🎜🎜Wenn der aktuelle Prozess einen nicht erfassten Fehler auslöst, wird dieser ausgelöst uncaughtException-Ereignis 🎜rrreee

beforeExit 🎜🎜 Das beforeExit-Ereignis wird ausgelöst, wenn Node.js seine Ereignisschleife löscht und keine weitere Arbeit zu planen hat. Normalerweise wird der Node.js-Prozess beendet, wenn keine geplante Arbeit vorliegt, aber ein beim beforeExit-Ereignis registrierter Listener kann einen asynchronen Aufruf tätigen, um die Fortsetzung des Node.js-Prozesses zu ermöglichen🎜rrreee

message 🎜🎜Wenn Sie den IPC-Kanal verwenden, um den Node.js-Prozess zu forken, und der untergeordnete Prozess die vom übergeordneten Prozess gesendete Nachricht mit childprocess.send() empfängt, wird der message-Ereignis wird ausgelöst🎜rrreee🎜process.nextTick(callback)🎜🎜Die Methode „process.nextTick()“ fügt der Warteschlange einen Rückruf zur Ausführung zum nächsten Zeitpunkt hinzu🎜🎜Für weitere programmierbezogene Kenntnisse: Bitte besuchen Sie: 🎜Programmiervideokurs🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonDas Prozessobjekt in Node.js verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage