Node.js でデフォルトで参照可能な __filename
や __dirname__
を使用すると、現在実行中のモジュール(jsファイル)の絶対パスや、そのファイルが含まれているディレクトリの絶対パスを取得することができます。
console.log(__filename);
console.log(__dirname);
D:\sandbox\node\sample.js
D:\sandbox\node
__dirname
と似たようなものに、カレントディレクトリを調べる process.cwd()
がありますが、こちらは現在のプロセスのカレントディレクトリを調べるものなので、JavaScript ファイルが置かれているパスとは関係がありません。
もちろん、JavaScript ファイルがあるディレクトリで node
コマンドを実行すれば __dirname
と同じ結果になりますが、process.chdir()
などでカレントディレクトリを変更すると、process.cwd()
の結果は変化します。
console.log(__dirname);
console.log(process.cwd());
process.chdir('..'); // 上のディレクトリへ移動
console.log(__dirname);
console.log(process.cwd());
D:\sandbox\node
D:\sandbox\node
D:\sandbox\node
D:\sandbox