const absolutePath = path.join(__dirname, some, dir);
vs.
const absolutePath = path.resolve(__dirname, some, dir);
path.join
verkettet Dies __dirname
ist der Verzeichnisname der aktuellen Datei, der mit Werten von some
und dir
mit plattformspezifischem Trennzeichen verknüpft ist.
Wohingegen
path.resolve
verarbeiten wird __dirname
, some
und das dir
heißt von rechts nach links vorangestellt wird es durch sie zu verarbeiten.
Wenn einer der Werte eines Root-Pfads some
oder dir
einem 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.join
und path.resolve
sind 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.join
Verkettet 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.js
und 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.