ホームページ  >  記事  >  ウェブフロントエンド  >  Node.js のプロセス オブジェクトを理解する

Node.js のプロセス オブジェクトを理解する

青灯夜游
青灯夜游転載
2020-12-01 17:36:243637ブラウズ

Node.js のプロセス オブジェクトを理解する

関連する推奨事項: 「node js チュートリアル

プロセス オブジェクトはグローバル変数である EventEmitter インスタンスであり、現在の Node.js プロセス情報と操作メソッド

システム情報

プロセス オブジェクトは、主要なシステム情報を返すための属性を提供します。一般的に使用されるものは次のとおりです。 title: プロセス名、デフォルト値ノード。エラー ログをわかりやすくするためにプログラムを変更できます。

    pid: 現在のプロセスの pid
  • ppid: 現在のプロセスの親プロセスの pid
  • プラットフォーム: プロセスが実行されているオペレーティング システム (aix、drawin、freebsd、linux、openbsd、sunos、win32)
  • version: Node.js バージョン
  • env: 現在の Shell のすべての環境変数

  • stdin & stdout
Node.js および標準入出力デバイス インタラクション オブジェクトも、プロセス オブジェクトを通じて提供されます

process.stdin.pipe(process.stdout)

単純なコード行でこれを実現できます。コンソール入力内容をそのままコンソールに出力します。

実行情報

process.execPath

process.execPath プロパティは、現在のスクリプトを実行する Node バイナリ ファイルを返します。絶対パス

process.argv

process.argv プロパティは配列を返します。内容は次のとおりです。スクリプト実行時のパラメータですが、配列の最初の 2 つは固定されています

現在のスクリプトを実行するノード バイナリ ファイルの絶対パス
  • ##現在の実行ファイルの絶対パス

  • 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プロセス.execArgv プロパティは配列を返します。メンバーは、コマンド ラインでスクリプトを実行するときの Node 実行可能ファイルとスクリプト ファイルの間のコマンド ライン パラメータです

##process.js

console.log(process.execArgv);
node --inspect process.js

[ '--inspect' ]

共通の操作方法
process.chdir(): 作業ディレクトリを指定したディレクトリに切り替えます

process.cwd(): 作業ディレクトリへのパスを返します。現在のスクリプトが実行中、これはノード コマンドが実行されるときのディレクトリです。

    process.exit(): 現在のプロセスを終了します。
  • process.memoryUsage(): ノードのメモリ使用量を返します。 Node.js プロセス
  • プロセス イベント

  • プロセス オブジェクトは、いくつかのコア システム イベントを監視できる EventEmitter オブジェクトのインスタンスです。一般的に使用されるものは次のとおりです。
exit

次のいずれかの理由で Node.js プロセスが終了しようとすると、

exit
イベントがトリガーされます:

明示的に

process.exit() メソッドを呼び出す

Node.js イベント ループで他の作業を実行する必要がなくなりました
  • 方法はありませんこの時点でイベント ループを終了しないようにするため、exit
  • イベントのすべてのリスナーの実行が完了すると、Node.js プロセスは
  • process.on('exit', (code) => {
      console.log(`退出码: ${code}`);
    });
  • uncaughtException

によって終了します。現在のプロセスがキャッチされないエラーをスローしました uncaughtException イベントがトリガーされます

process.on('uncaughtException', function (err) {
  console.error(err.stack);
});

beforeExit

beforeExit## は、Node.js がイベント ループをクリアし、イベント ループが存在しないときにトリガーされますさらに多くの作業が予定されています。 # イベント。通常、スケジュールされた作業がない場合、Node.js プロセスは終了しますが、beforeExit

イベントに登録されたリスナーは非同期呼び出しを行うことができ、Node.js プロセスを続行できるようになります。

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

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

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

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

message

IPC チャネルを使用して Node.js プロセスをフォークし、子プロセスが childprocess.send() を使用して親プロセスによって送信されたメッセージを受信する場合、message

イベント

process.on('message', (m) => {
  console.log('子进程收到消息', m);
});
# がトリガーされます。 ##process.nextTick(callback)

process.nextTick() メソッドは、次の実行時点でキューにコールバックを追加します プログラミング関連の知識について詳しくは、プログラミング ビデオ コース をご覧ください。 !

以上がNode.js のプロセス オブジェクトを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。