logo hsb.horse
← Zur Snippets-Übersicht

Snippets

Dateiprüfung in Node.js

Promise-basierte Funktion, um zu prüfen, ob ein Pfad in Node.js eine Datei ist. Gibt bei Fehlern false zurück.

Veröffentlicht: Aktualisiert:

Prüft mit Promises, ob ein Pfad in Node.js auf eine Datei zeigt. Gibt bei Fehlern false zurück und funktioniert damit auch als Existenzprüfung.

So ein kleiner Helper ist praktisch, wenn ich fs.stat() nicht jedes Mal in try-catch einpacken will. Er passt gut zu optionalen Konfigurationsdateien, von Nutzern gelieferten Pfaden oder Cleanup-Schritten, die nur laufen sollen, wenn wirklich eine normale Datei vorhanden ist.

import fs from "node:fs/promises";
function isFile(path: string): Promise<boolean> {
return fs
.stat(path)
.then((stats) => stats.isFile())
.catch(() => false);
}

Wobei das hilft

Die Funktion passt, wenn die Bedingung nur lautet: Der Pfad muss existieren und eine normale Datei sein, kein Verzeichnis. Dadurch bleibt der aufrufende Code klein, weil die Ausnahmebehandlung nicht überall wiederholt werden muss.

Warum diese Form praktisch ist

Der Helper reduziert das Ergebnis von fs.stat() auf stats.isFile() und faltet jede Exception zu false zusammen. Wenn fehlende Pfade und Nicht-Dateien beide einfach als unbrauchbar gelten sollen, reicht dieses kleine API meist aus.

Hinweise

Diese Variante gibt nicht weiter, welche Art von Fehler aufgetreten ist. Sie unterscheidet also nicht zwischen einer fehlenden Datei und einem Berechtigungsfehler. Wenn dieser Unterschied wichtig ist, sollte im catch der Fehlercode ausgewertet werden. Wenn ich den symbolischen Link selbst statt seines Ziels prüfen will, ist lstat() die bessere Wahl.