Ich habe Probleme zu verstehen, wie fs.stat () funktioniert

8

Ich versuche eine Funktion zu schreiben, die mir sagt, dass ein bestimmter Pfad ein Verzeichnis ist.

%Vor%

Es wird jedoch niemals die Antwort gedruckt.

Wenn Pfadname existiert - ruft er die Funktion nicht auf. Wenn es nicht existiert, wird eine Ausnahme generiert: ENOENT not a file or directory . Ich will nicht wissen, dass Pfadname existiert, aber ich möchte wissen, ob es ein Verzeichnis ist.

Kann mir jemand helfen, es zu reparieren?

    
Asher Saban 20.12.2011, 21:15
quelle

2 Antworten

24

Sie verwenden die synchrone Version, die keinen Rückruf verwendet. Es gibt einfach das Ergebnis zurück. Verwenden Sie also entweder das asynchrone Formular fs.stat(path, callback) oder verwenden Sie das Synchronisierungsformular wie folgt:

%Vor%     
Alex Wayne 20.12.2011, 21:19
quelle
1

Wie fs.stat () funktioniert?

Wenn Sie eine Callback / Async-Funktion verwenden möchten, verwenden Sie nicht die synchrone Version, verwenden Sie fs.stat ():

%Vor%

Es gibt weitere Informationen zu fs.stat () . Sie können eine Menge Informationen über das Hauptobjekt erhalten:

%Vor%

Ausgabe:

%Vor%

Viele Elemente sind oft nutzlos für uns, ja. Aber hier ist die Bedeutung all dieser Variablen, laut diesem Artikel :

  • dev: ID des Geräts, das die Datei
  • enthält
  • Modus: Dateischutz
  • nlink: Anzahl der festen Links zur Datei
  • uid: Benutzer-ID des Eigentümers der Datei.
  • gid: Gruppen-ID des Eigentümers der Datei.
  • rdev: Geräte-ID, wenn die Datei eine spezielle Datei ist.
  • blksize: Blockgröße für Dateisystem-E / A.
  • ino: Datei-Inode-Nummer. Ein Inode ist eine Dateisystemdatenstruktur, die -
  • speichert Informationen zu einer Datei.
  • size: Gesamtgröße der Datei in Byte.
  • blocks: Anzahl der Blöcke, die für die Datei reserviert sind.
  • atime: Datumsobjekt, das die letzte Zugriffszeit der Datei darstellt.
  • mtime: Datumsobjekt, das die letzte Änderungszeit der Datei darstellt.
  • ctime: Datumsobjekt, das die letzte Änderung des Inodes der Datei darstellt.

Sie können auch, wie in der nodeJS-Dokumentation , weitere Informationen erhalten :

%Vor%

Über stats.isSymbolicLink () gibt es eine andere Funktion als fs.stat, genannt fs.lstat (), und hier ist der Unterschied zwischen ihnen:

  • stat folgt Symlinks. Wenn ein Pfad angegeben wird, der ein Symlink ist, wird der Status des Ziels des Symlinks zurückgegeben.
  • lstat folgt nicht Symlinks. Wenn ein Pfad angegeben wird, der ein Symlink ist, gibt er den Status des Symlinks und nicht sein Ziel zurück.
Arthur Lacoste 19.10.2017 18:36
quelle

Tags und Links