Node.jsのprocess.chdir()メソッドの使い方を徹底解説
process.chdir()メソッドは、Node.jsプロセスのカレントワーキングディレクトリ(現在の作業ディレクトリ)を変更するために使用される組み込みAPIです。
このメソッドは、指定されたディレクトリへの変更が成功した場合には何も値を返しませんが、何らかのエラーが発生したり処理が失敗したりした場合には例外(Error)をスローします。たとえば、指定したディレクトリが存在しない場合にはENOENTエラーが発生して失敗します。
構文
process.chdir(directory)
パラメータ
directory – 新しく設定したいディレクトリのパスまたは名前を指定します。既存のカレントディレクトリが、ここで指定したディレクトリに置き換えられます。
使用例1:正常にディレクトリを変更するケース
まず、「chdir.js」という名前のファイルを作成し、以下のコードをコピーしてください。ファイルを作成したら、次のコマンドでコードを実行できます。
node chdir.js
chdir.js
// process.chdir() の使用方法を示すNode.jsプログラム
// processモジュールを読み込む
const process = require('process');
// 現在のワーキングディレクトリを表示
console.log("現在のワーキングディレクトリ: " + process.cwd());
try {
// 新しいディレクトリに変更
process.chdir('../tutorialspoint');
console.log("変更後のワーキングディレクトリ: " + process.cwd());
} catch (err) {
// エラーが発生した場合に出力
console.error("ディレクトリ変更中にエラーが発生しました: " + err);
}実行結果
C:\home\node>> node chdir.js 現在のワーキングディレクトリ: /home/mayankaggarwal/mysql-test 変更後のワーキングディレクトリ: /home/mayankaggarwal/tutorialspoint
この例では、process.cwd()を使って変更前後のカレントディレクトリを出力することで、ディレクトリが正しく切り替わったことを確認しています。
使用例2:存在しないディレクトリを指定したケース
続いて、存在しないディレクトリを指定した場合の挙動を見てみましょう。
// 存在しないディレクトリを指定した場合の動作を示すNode.jsプログラム
// processモジュールを読み込む
const process = require('process');
try {
// 存在しないディレクトリへ変更を試みる
process.chdir('../not/tutorialspoint');
console.log("新しいディレクトリへの変更に成功しました");
} catch (err) {
// エラーが発生した場合に出力
console.error("ディレクトリ変更中にエラーが発生しました", err);
}実行結果
C:\home\node>> node chdir.js
ディレクトリ変更中にエラーが発生しました { Error: ENOENT: no such file or directory,
chdir '../not/tutorialspoint'
at process.chdir (internal/process/main_thread_only.js:31:12)
at Object.<anonymous> (/home/mayankaggarwal/mysql-test/process.js:9:9)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
errno: -2,
code: 'ENOENT',
syscall: 'chdir',
path: '../not/tutorialspoint' }まとめ
process.chdir()は、Node.jsプロセスのカレントディレクトリを動的に変更できる便利なメソッドです。ただし、以下の点に注意して使用しましょう。
- 成功時は戻り値がないため、変更後の確認には
process.cwd()を併用するとよい - ディレクトリが存在しない場合は
ENOENTエラーがスローされるため、必ずtry...catchで例外処理を行う - 相対パスを指定した場合は、現在のカレントディレクトリを基準として解決される
-
【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互