Node.js path-Modul
von Node.jspathDas Modul ist ein eingebautes Kernmodul, das speziell für die Verarbeitung von Datei- und Verzeichnispfaden entwickelt wurde.
path bietet eine Reihe praktischer Methoden, mit denen Sie Dateipfade in verschiedenen Betriebssystemumgebungen sicher und effizient bearbeiten können.
Warum benötigen Sie das path-Modul?
Verschiedene Betriebssysteme verwenden unterschiedliche Pfadtrennzeichen:
- Windows verwendet Backslashes
\ - Unix/Linux/macOS verwenden Schrägstriche
/
pathDas Modul behandelt diese Unterschiede automatisch, sodass Ihr Code auf verschiedenen Plattformen ordnungsgemäß funktioniert.
Grundlegende Verwendung des path-Moduls
Importieren des path-Moduls
Häufig verwendete Methoden
1. path.join([...paths]) - Pfade verbinden
Beispiel
console.log(fullPath);
// Unter Unix wird ausgegeben: /user/documents/file.txt
// Unter Windows wird ausgegeben: \user\documents\file.txt
2. path.resolve([...paths]) - Einen absoluten Pfad auflösen
Beispiel
console.log(absolutePath);
// Gibt den absoluten Pfad im aktuellen Arbeitsverzeichnis aus, z. B.: /home/user/project/src/app.js
3. path.basename(path[, ext]) - Dateinamen ermitteln
Beispiel
console.log(path.basename('/user/docs/file.txt', '.txt')); // file
4. path.dirname(path) - Verzeichnisnamen ermitteln
Beispiel
5. path.extname(path) - Dateiendung ermitteln
Beispiel
console.log(path.extname('file')); // Leerer String
Plattformübergreifende Pfadverarbeitung
Pfadtrennzeichen
path.sep- Plattformspezifisches Pfadtrennzeichenconsole.log(path.sep); // Windows 输出 '\', Unix 输出 '/'
path.delimiter- Plattformspezifisches Pfadtrennzeichen (verwendet in der Umgebungsvariable PATH)console.log(path.delimiter); // Windows 输出 ';', Unix 输出 ':'
Pfadnormalisierung
Verwendungpath.normalize(path)kann Pfade normalisieren und dabei Redundanzen.、..und Trennzeichen:
Beispiel
Pfadanalyse und Formatkonvertierung
path.parse(path) - Zerlegt einen Pfad in ein Objekt
Beispiel
console.log(pathObj);
/*
{
root: '/',
dir: '/user/docs',
base: 'file.txt',
ext: '.txt',
name: 'file'
}
*/
path.format(pathObject) - Erstellt einen Pfad aus einem Objekt
Beispiel
dir: '/user/docs',
name: 'file',
ext: '.txt'
});
console.log(pathStr); // /user/docs/file.txt
Praktische Anwendungsbeispiele
Beispiel 1: Plattformübergreifende Dateipfade erstellen
Beispiel
console.log(configPath);
Beispiel 2: Umgang mit vom Benutzer hochgeladenen Dateien
Beispiel
const ext = path.extname(originalName);
const baseName = path.basename(originalName, ext);
const timestamp = Date.now();
const newFileName = `${baseName}_${timestamp}${ext}`;
return path.join(uploadDir, newFileName);
}
Beispiel 3: Überprüfen von Dateiendungen
Beispiel
const ext = path.extname(filename).toLowerCase();
return ['.jpg', '.jpeg', '.png', '.gif'].includes(ext);
}
Methoden und Eigenschaften
Die Methoden und Eigenschaften des path-Moduls sind wie folgt:
| Methode | Beschreibung | Beispiel |
|---|---|---|
path.basename(path[, ext]) | Gibt den letzten Teil des Pfads zurück (Dateiname). Der optionale Parameterextwird verwendet, um die Dateiendung zu entfernen. | path.basename('/foo/bar/baz.txt'); // 输出: 'baz.txt' |
path.dirname(path) | Gibt den Verzeichnisteil des Pfads zurück. | path.dirname('/foo/bar/baz.txt'); // 输出: '/foo/bar' |
path.extname(path) | Gibt die Dateiendung des Pfads zurück. | path.extname('/foo/bar/baz.txt'); // 输出: '.txt' |
path.join([...paths]) | Verbindet mehrere Pfade zu einem Pfad und behandelt dabei automatisch Pfadtrennzeichen. | path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // 输出: '/foo/bar/baz/asdf' |
path.resolve([...paths]) | Löst eine Sequenz von Pfaden in einen absoluten Pfad auf und verarbeitet dabei jedes Pfadsegment von rechts nach links, bis ein absoluter Pfad konstruiert ist. | path.resolve('/foo/bar', './baz'); // 输出: '/foo/bar/baz' |
path.normalize(path) | Normalisiert den Pfad, entfernt redundante.und.., und ersetzt Pfadtrennzeichen gemäß dem aktuellen Betriebssystem. | path.normalize('/foo/bar//baz/asdf/quux/..'); // 输出: '/foo/bar/baz/asdf' |
path.isAbsolute(path) | Prüft, ob der Pfad ein absoluter Pfad ist. | path.isAbsolute('/foo/bar'); // 输出: true |
path.relative(from, to) | Gibt zurück vonfromden Pfad zutoden relativen Pfad des Pfades. | path.relative('/foo/bar/baz', '/foo/bar/qux'); // 输出: '../qux' |
path.parse(path) | Eigenschaften des ausgewählten Elements.root、dir、base、extundnameFormatiert das Pfadobjekt in eine Pfadzeichenkette, die | path.parse('/home/user/dir/file.txt');das Gegenteil ist.{ root: '/', dir: '/home/user/dir', base: 'file.txt', ...} |
path.format(pathObject) | Liefert das Pfadtrennzeichen des aktuellen Betriebssystems (POSIX istpath.parse, Windows ist | path.format({ root: '/', dir: '/home/user/dir', base: 'file.txt' }); // 输出: '/home/user/dir/file.txt' |
path.sep | Liefert den Pfadbegrenzer (das Trennzeichen zwischen Pfaden in Umgebungsvariablen), POSIX ist'/', Windows ist'\')。 | console.log(path.sep); // 输出: '\' (Windows) oder '/' (POSIX) |
path.delimiter | Beispiel:Beispiel;。 | console.log(path.delimiter); // 输出: ';' (Windows) oder ':' (POSIX) |
Beispiel
Erstellen Sie eine main.js-Datei, der Code ist wie folgt:
Beispiel
// Dateinamen abrufen
console.log('Dateiname:', path.basename('/foo/bar/baz.txt')); // Ausgabe: 'baz.txt'
// Den Verzeichnisnamen abrufen
console.log('Verzeichnisname:', path.dirname('/foo/bar/baz.txt')); // Ausgabe: '/foo/bar'
// Erweiterung abrufen
console.log('Erweiterung:', path.extname('/foo/bar/baz.txt')); // Ausgabe: '.txt'
// Pfade verbinden
console.log('Verbundener Pfad:', path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')); // Ausgabe: '/foo/bar/baz/asdf'
// Absoluten Pfad auflösen
console.log('Absoluter Pfad:', path.resolve('/foo/bar', './baz')); // Ausgabe: '/foo/bar/baz'
// Pfad normalisieren
console.log('Normalisierter Pfad:', path.normalize('/foo/bar//baz/asdf/quux/..')); // Ausgabe: '/foo/bar/baz/asdf'
// Ermitteln, ob es ein absoluter Pfad ist
console.log('Ist absoluter Pfad:', path.isAbsolute('/foo/bar')); // Ausgabe: true
// Relativer Pfad
console.log('Relativer Pfad:', path.relative('/foo/bar/baz', '/foo/bar/qux')); // Ausgabe: '../qux'
// Pfad in ein Objekt parsen
const parsedPath = path.parse('/home/user/dir/file.txt');
console.log('Geparstes Pfadobjekt:', parsedPath);
// Ausgabe: { root: '/', dir: '/home/user/dir', base: 'file.txt', ext: '.txt', name: 'file' }
// Objekt als Pfad formatieren
const formattedPath = path.format(parsedPath);
console.log('Formatted path:', formattedPath); // Outputs: '/home/user/dir/file.txt'
Node.js integrierte Module