const absolutePath = path.join(__dirname, some, dir);
vs.
const absolutePath = path.resolve(__dirname, some, dir);
path.joinverkettet Dies __dirnameist der Verzeichnisname der aktuellen Datei, der mit Werten von someund dirmit plattformspezifischem Trennzeichen verknüpft ist.
Wohingegen
path.resolveverarbeiten wird __dirname, someund das dirheißt von rechts nach links vorangestellt wird es durch sie zu verarbeiten.
Wenn einer der Werte eines Root-Pfads someoder direinem Root-Pfad entspricht, wird der vorherige Pfad weggelassen und der Rest wird verarbeitet, indem er als Root betrachtet wird
Um das Konzept besser zu verstehen, möchte ich beide etwas detaillierter wie folgt erläutern:
Das path.joinund path.resolvesind zwei verschiedene Methoden oder Funktionen des von nodejs bereitgestellten Pfadmoduls.
Wenn beide eine Pfadliste akzeptieren, der Unterschied jedoch im Ergebnis liegt, dh wie sie diesen Pfad verarbeiten.
path.joinVerkettet alle angegebenen Pfadsegmente unter Verwendung des plattformspezifischen Trennzeichens als Trennzeichen und normalisiert dann den resultierenden Pfad. Während des path.resolve()Prozesses wird die Reihenfolge der Pfade von rechts nach links festgelegt, wobei jeder nachfolgende Pfad vorangestellt wird, bis ein absoluter Pfad erstellt wird.
Wenn keine Argumente angegeben werden
Das folgende Beispiel hilft Ihnen, beide Konzepte klar zu verstehen:
Mein Dateiname ist index.jsund das aktuelle Arbeitsverzeichnis istE:\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
Ergebnis
λ node index.js
path.join() : .
path.resolve() : E:\MyFolder\Pjtz\node
path.resolve()Die Methode gibt den absoluten Pfad als path.join()Rückgabe aus. Darstellen des aktuellen Arbeitsverzeichnisses, wenn nichts angegeben ist
Wenn ein Stammpfad als Argumente übergeben wird
const path=require('path');
console.log("path.join() : " ,path.join('abc','/bcd'));
console.log("path.resolve() : ",path.resolve('abc','/bcd'));
Ergebnis i
λ node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()Verkettet die Eingabeliste nur mit einem plattformspezifischen Trennzeichen, während der path.resolve()Prozess die Reihenfolge der Pfade von rechts nach links verarbeitet, wobei jedem nachfolgenden Pfad ein Präfix vorangestellt wird, bis ein absoluter Pfad erstellt wird.