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

Das Prozessobjekt in Node.js verstehen

青灯夜游
青灯夜游nach vorne
2020-12-01 17:36:243637Durchsuche

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)

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);
    node process.js a --b=2
    
    [
      '/usr/local/bin/node',
      '/Users/undefined/node-demo/process.js',
      'a',
      '--b=2'
    ]

    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);
node --inspect process.js

[ '--inspect' ]

process.execArgv

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

process.js

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

常用操作方法

  • 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

uncaughtException

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen