Was ist der Unterschied zwischen
console.log(process.cwd())
y
console.log(__dirname);
Ich habe gesehen, dass beide in ähnlichen Zusammenhängen verwendet werden.
Was ist der Unterschied zwischen
console.log(process.cwd())
y
console.log(__dirname);
Ich habe gesehen, dass beide in ähnlichen Zusammenhängen verwendet werden.
process.cwd()
gibt das aktuelle Arbeitsverzeichnis zurück,
d.h. das Verzeichnis, von dem aus Sie die node
Befehl.
__dirname
gibt den Verzeichnisnamen des Verzeichnisses zurück, das die JavaScript-Quellcode-Datei enthält
Wie bei node js doc process.cwd()
cwd
ist eine Methode des globalen Objekts process
gibt einen String-Wert zurück, der das aktuelle Arbeitsverzeichnis des Node.js-Prozesses darstellt.
Wie bei node js doc __dirname
Der Verzeichnisname des aktuellen Skripts als String-Wert. __dirname
ist nicht wirklich global, sondern eher lokal für jedes Modul.
Lassen Sie mich dies anhand von Beispielen erläutern:
Nehmen wir an, wir haben eine main.js
Datei, die sich innerhalb von C:/Project/main.js
und Laufen node main.js
beide Werte ergeben dieselbe Datei.
oder einfach mit der folgenden Ordnerstruktur
Project
main.js
lib
script.js
main.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname === process.cwd())
// true
Nehmen wir an, wir haben eine weitere Datei script.js
Dateien in einem Unterverzeichnis des Projekts, d.h. C:/Project/lib/script.js
und Laufen node main.js
die erfordern script.js
main.js
require('./lib/script.js')
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project
console.log(__dirname === process.cwd())
// true
script.js
console.log(process.cwd())
// C:\Project
console.log(__dirname)
// C:\Project\lib
console.log(__dirname === process.cwd())
// false
Vereinfacht lässt sich das so formulieren:
process.cwd()
gibt den Wert des Verzeichnisses zurück, in dem wir den Knotenprozess ausführen, während
__dirname
gibt den Wert des Verzeichnisses zurück, in dem sich die aktuell laufende Datei befindet.
Das Wissen um die Umfang von jedem kann man sich die Dinge leichter merken.
process
est node
das globale Objekt und .cwd()
gibt zurück, wo der Knoten läuft.
__dirname
est module
und stellt den Dateipfad des Moduls dar. Im Knoten befindet sich ein Modul in einer Datei.
Ähnlich, __filename
ist eine weitere module
die den Dateinamen des Moduls enthält.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.