Rufen Sie den Namen des übergeordneten Verzeichnisses in Node.js ab


76

Ich verwende Node.js und möchte den übergeordneten Verzeichnisnamen für eine Datei erhalten. Ich habe die Akte "../test1/folder1/FolderIWant/test.txt".

Ich will bekommen "FolderIWant".

Ich habe versucht:

var path = require('path');
var parentDir = path.dirname(filename);

Aber es kehrt zurück ../test1/folder1/FolderIWant.

Antworten:




37

Die Antwort von Daniel Wolf ist richtig, auch wenn Sie den vollständigen Pfad des übergeordneten Verzeichnisses möchten:

require('path').resolve(__dirname, '..')

0
const path = require('path');

module.exports = path.dirname(process.mainModule.filename)

Verwenden Sie dies überall, um das Stammverzeichnis abzurufen


es zeigt Fehler bei mainModule. Ungelöste Variable mainModule
usman imtiaz

0

Bei Verwendung von Node ab 06-2019 stieß ich auf ein Problem beim Zugriff auf just filename. Also habe ich es stattdessen nur ein kleines bisschen modifiziert und verwendet:

path.dirname(__filename).split(path.sep).pop()

Jetzt erhalten Sie den Verzeichnisnamen des aktuellen Verzeichnisses und nicht den vollständigen Pfad. Obwohl die vorherigen Antworten möglicherweise für andere zu funktionieren scheinen, verursachte dies für mich Probleme, da der Knoten nach einer Konstante oder einer Variablen suchte, aber keine finden konnte.


0

process.mainModuleEigentum ist in veraltet v14.0.0. Wenn foo.js von ausgeführt wird node foo.js(z. B. somedir / foo.js "),

const path = require("path");

module.exports = path.dirname(require.main.filename);

Ergebnis: Somedir

Verwenden Sie stattdessen require.main



0

Einfachster Weg ohne Knotenmodule wie den Pfad. Sie können auf folgende Weise einfach den Namen des Stammordners abrufen.

var rootFolder = __dirname.split('/').pop();
console.log(rootFolder);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.