const absolutePath = path.join(__dirname, some, dir);
対
const absolutePath = path.resolve(__dirname, some, dir);
path.join連結であろう__dirname値と連結現在のファイルのディレクトリ名であるsomeとdirプラットフォーム固有のセパレータ。
どこに
path.resolve処理し__dirname、someそしてdirつまりは、それを処理することによって、それを付加右から左に。
ルートパスの値someまたはdirルートパスに対応する値の場合、前のパスは省略され、ルートと見なして残りのプロセスが処理されます
概念をよりよく理解するために、次のように両方をもう少し詳しく説明しましょう。
二つの異なる方法またはnodejsによって提供されるパスモジュールの関数です。path.joinpath.resolve
どちらもパスのリストを受け入れますが、違いは結果、つまりこれらのパスの処理方法にあります。
path.joinプラットフォーム固有の区切り文字を区切り文字として使用して、指定されたすべてのパスセグメントを連結し、結果のパスを正規化します。一方、path.resolve()プロセスの右からの絶対パスが構築されるまで、付加後続の各パスで、左へのパスの配列。
引数が指定されていない場合
次の例は、両方の概念を明確に理解するのに役立ちます:-
私のファイル名はindex.jsで、現在の作業ディレクトリはE:\MyFolder\Pjtz\node
const path = require('path');
console.log("path.join() : ", path.join());
// outputs .
console.log("path.resolve() : ", path.resolve());
// outputs current directory or equalent to __dirname
結果
λ node index.js
path.join() : .
path.resolve() : E:\MyFolder\Pjtz\node
path.resolve()メソッドは絶対パスを出力しpath.join()ます。何も提供されていない場合、現在の作業ディレクトリを表す
いくつかのルートパスが引数として渡されたとき
const path=require('path');
console.log("path.join() : " ,path.join('abc','/bcd'));
console.log("path.resolve() : ",path.resolve('abc','/bcd'));
結果i
λ node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()path.resolve()絶対パスが構築されるまで後続の各パスが前に付けられて、パスのシーケンスを右から左に処理しながら、プラットフォーム固有のセパレーターのみで入力リストを連結します。