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互換プロセッサ
- x32: 32ビットx86互換プロセッサ
- arm: 32ビットARM(Advanced RISC Machine)プロセッサ
- arm64: 64ビットARMプロセッサ
- ia32: 32ビットIntelアーキテクチャ
- mips / mipsel: MIPS系プロセッサ
- ppc / ppc64: PowerPCアーキテクチャ
使用例1:基本的な使い方
まず、「architecture.js」という名前のファイルを作成し、以下のコードをコピーしてください。ファイル作成後、次のコマンドでコードを実行します。
node architecture.js
architecture.js
// process.archの使い方を示すNode.jsプログラム
// processモジュールのインポート
const process = require('process');
// システムのアーキテクチャを出力
console.log(process.arch);出力結果
C:\home\node>> node architecture.js x64
この例では、実行環境が64ビットのx86互換システムであるため、「x64」が出力されています。
使用例2:switch文でアーキテクチャを判定する
続いて、switch文と組み合わせて、取得したアーキテクチャに応じて処理を分岐させる実践的な例を見てみましょう。
// process.archの使い方を示すNode.jsプログラム
// processモジュールのインポート
const process = require('process');
// アーキテクチャごとにメッセージを出力
switch(process.arch) {
case 'x32':
console.log("これは32ビット拡張システムです");
break;
case 'x64':
console.log("これは64ビット拡張システムです");
break;
case 'arm':
console.log("これは32ビットARM(Advanced RISC Machine)です");
break;
case 'arm64':
console.log("これは64ビットARM(Advanced RISC Machine)です");
break;
case 'mips':
console.log("これは32ビットMIPSアーキテクチャです");
break;
case 'ia32':
console.log("これは32ビットIntelアーキテクチャです");
break;
case 'ppc':
console.log("これはPowerPCアーキテクチャです");
break;
case 'ppc64':
console.log("これは64ビットPowerPCアーキテクチャです");
break;
// 必要に応じて他のアーキテクチャも追加できます
default:
console.log("このアーキテクチャは不明です。");
}出力結果
C:\home\node>> node architecture.js これは64ビット拡張システムです
まとめ
process.archを使うことで、Node.jsアプリケーションが動作しているCPUアーキテクチャを簡単に判別できます。ネイティブバイナリモジュールの読み込みや、プラットフォーム固有の処理を行いたい場合に特に役立つ機能です。
-
Node.jsのprocess.argv0プロパティとは?使い方とprocess.argv[0]との違いを解説
Node.jsでは、アプリケーション起動時に渡された元のargv[0]の値を、読み取り専用のコピーとして保持するための仕組みとしてprocess.argv0が用意されています。このプロパティを参照することで、Node.jsプロセスが起動された際の実行ファイル名を簡単に取得できます。 構文 process.argv0 パラメータ process.argv0は、保存されているargv[0]の読み取り専用コピーを返すだけのため、ユーザーからの入力(引数)は一切不要です。なお、これは関数ではなくプロパティである点に注意してください。括弧を付けて呼び出すのではなく、単純に参照するだけで値が取得できます。
-
【Node.js入門】process.argvでコマンドライン引数を取得する方法
process.argv は、Node.js プロセスの起動時にコマンドラインから渡されたすべての引数を配列として返すプロパティです。配列の最初の要素には必ず process.execPath と同じ値(Node.js 実行バイナリへの絶対パス)が含まれ、2番目の要素には実行中のJavaScriptファイルのパスが格納されます。それ以降の要素には、ユーザーが指定した追加の引数が順番に並びます。 構文 process.argv パラメータ process.argv は、Node.js プロセス起動時に渡されたコマンドライン引数をすべて取得するためのものであり、ユーザーが何かを入力する必要はありま