Node.jsのprocess.envとは?環境変数の取得方法を実例付きで解説
Node.jsのprocess.envは、コマンドを実行しているユーザー環境(環境変数)の情報をオブジェクトとして取得するためのプロパティです。このオブジェクトには、シェルやホームディレクトリ、PATHなど、実行環境に関するあらゆる情報が含まれています。
構文
process.env
引数
process.envはユーザー環境のオブジェクトをそのまま返すため、引数などの入力は必要ありません。
使用例1:環境変数オブジェクト全体を表示する
まず「env.js」という名前のファイルを作成し、以下のコードを貼り付けてください。ファイル作成後、次のコマンドでプログラムを実行します。
node env.js
env.js
// process.env の動作を確認する Node.js プログラム
// process モジュールを読み込む
const process = require('process');
// ユーザー環境オブジェクトを出力する
console.log(process.env);
出力結果
実行すると、環境変数がキーと値のペアを持つオブジェクトとして出力されます。実際の表示内容は、OSやシェルの設定によって異なります。
{
SHELL: '/bin/bash',
COLORTERM: 'truecolor',
DESKTOP_SESSION: 'ubuntu',
PWD: '/home/admin/test',
LOGNAME: 'admin',
HOME: '/home/admin',
USERNAME: 'admin',
LANG: 'en_IN',
TERM: 'xterm-256color',
USER: 'admin',
DISPLAY: ':0',
PATH: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:...',
_: '/usr/bin/node',
OLDPWD: '/home/admin'
// ...ほかにも多数の環境変数が含まれます
}
使用例2:環境変数を1つずつ取り出して表示する
続いて、for...inループで返されたオブジェクトを走査し、すべてのキーと値を順番に出力しながら件数を数える例を見てみましょう。あわせて、特定の環境変数へ個別にアクセスする方法も確認できます。
// process.env の動作を確認する Node.js プログラム
// process モジュールを読み込む
const process = require('process');
// 環境変数の個数を数える変数
var no_env = 0;
// process.env を呼び出す
var env = process.env;
// 返されたデータを走査して値を出力する
for (var key in env) {
console.log(key + ":\t\t\t" + env[key]);
no_env++;
}
// 環境変数の合計件数を出力する
console.log("total no of values available = " + no_env);
// 特定のフィールドに個別にアクセスする
console.log("operating system: " + env['OS']);
console.log("alluserprofile: " + env['ALLUSERSPROFILE']);
console.log("public directory: " + env['PUBLIC']);
出力結果
このスクリプトを実行すると、SHELL、HOME、PATHといったすべての環境変数が「キー: 値」の形式で1行ずつ表示され、最後に総件数が出力されます。
SHELL: /bin/bash COLORTERM: truecolor DESKTOP_SESSION: ubuntu PWD: /home/admin/test LOGNAME: admin HOME: /home/admin USERNAME: admin LANG: en_IN TERM: xterm-256color USER: admin DISPLAY: :0 total no of values available = 50 operating system: undefined alluserprofile: undefined public directory: undefined
押さえておきたいポイント
- process.envは、現在のプロセスのユーザー環境(環境変数の一覧)をオブジェクトとして返します。
- 表示される内容はOS・シェル・実行環境ごとに異なり、常に同じであるとは限りません。
- 出力例で「undefined」になっているのは、Linux環境にはOS・ALLUSERSPROFILE・PUBLICといったWindows固有の環境変数が存在しないためです。
-
【Node.js入門】process.argvでコマンドライン引数を取得する方法
process.argv は、Node.js プロセスの起動時にコマンドラインから渡されたすべての引数を配列として返すプロパティです。配列の最初の要素には必ず process.execPath と同じ値(Node.js 実行バイナリへの絶対パス)が含まれ、2番目の要素には実行中のJavaScriptファイルのパスが格納されます。それ以降の要素には、ユーザーが指定した追加の引数が順番に並びます。 構文 process.argv パラメータ process.argv は、Node.js プロセス起動時に渡されたコマンドライン引数をすべて取得するためのものであり、ユーザーが何かを入力する必要はありま
-
Node.jsのprocess.archでCPUアーキテクチャを取得する方法
Node.jsのprocess.archは、現在のNode.jsプロセスがコンパイルされたCPUアーキテクチャを取得するためのプロパティです。なお、process.archは関数ではなく文字列型のプロパティであるため、呼び出し時に括弧()は不要です。返される主な値には、arm、arm64、ia32、mips、mipsel、ppc、ppc64、x32、x64などがあります。構文process.archパラメータと戻り値process.archは引数を受け取りません。実行中のコードがコンパイルされた環境のアーキテクチャ名を、文字列としてそのまま返します。主な戻り値の一覧x64: 64ビットx86互