こんにちは
町田商店のラーメンを食べすぎて1年間で8キロ太った尾崎です。
おすすめはネギラーメン大盛り 硬め濃いめ多め チャーハンセット トッピングほうれん草
真面目に記事書きます。
Node.jsでサーバーサイド開発をしていると度々使う`process`オブジェクト。
他にどんなのがあるのかなぁと調べたら割と開発に便利なものが多かったのでまとめてみます。
公式ドキュメント:https://nodejs.org/api/process.html#process_process
チートシート
API/プロパティ | 説明 | 値の例 | 備考 |
---|---|---|---|
process.env | 環境変数を取得・設定する。 | { NODE_ENV: "production", ... } | すべて文字列として扱われる。 Dockerやクラウド環境で要確認。 |
process.argv | コマンドライン引数の配列。 | ["/usr/local/bin/node","/path/app.js","--port=3000"] | 最初の2つはnode実行時のパス関連。 引数パースにはライブラリ( yargs など)推奨。 |
process.cwd() | プロセスの現在の作業ディレクトリを返す。 | 例:/home/ubuntu/myapp | __dirname との違いに注意。Dockerコンテナでは WORKDIR 設定に依存。 |
process.exit(code?) | 現在のプロセスを終了させる。 | 指定しない場合は0 (正常終了) | 非同期処理を待たずに終了する場合があるので乱用注意。 優雅なシャットダウン時はシグナルハンドリング推奨。 |
process.uptime() | 起動してからの経過時間(秒)を返す。 | 例:123.4567 | デバッグや監視に有用。 再起動の頻度チェックにも活用可。 |
process.memoryUsage() | プロセスが使用中のメモリ情報を返す。 | { rss: 12345678, heapTotal: 567890, ... } | メモリリーク疑い時のデバッグに。 本番は監視ツール連携推奨。 |
process.version | 現在のNode.jsバージョンを文字列で返す。 | "v18.12.0" など | バージョン差を吸収するより、 Dockerイメージ等で固定するのが安定。 |
process.versions | Node.jsやV8等の詳細バージョン情報。 | { node: "18.12.0", v8: "10.x.x", ... } | 依存ライブラリとの相性チェック用。 |
process.platform | 実行環境のプラットフォーム名。 | "linux" , "darwin" , "win32" など | OSごとの挙動分岐に使えるが、 条件分岐が増えると可読性が下がる可能性。 |
process.arch | Node.jsが動作しているアーキテクチャ名。 | "x64" , "arm" , "arm64" など | CPUやバイナリ依存のライブラリ使用時に注意。 |
process.pid | 現在のプロセスID。 | 例:12345 | ログ出力やモニタリングに使える。 |
process.ppid | 親プロセスのID。 | 例:2345 | 上位のプロセス追跡に。 |
process.on("SIGTERM", ...) など | シグナル受信時の動作を定義。 Docker停止、Ctrl+Cなどに反応。 | ― | 優雅なシャットダウンを実装する際に必須。 キャッチしないと強制終了される可能性。 |
公式ドキュメント見るとめちゃくちゃ多いんですよね
覚える必要はないので良く使うやつだけこんなのあったなーって頭に入れとくのがいいかなと思います。