Node.js

Überwachen und Warten auf Dateiänderungen in Node.js

So überwachen und warten Sie auf Dateiänderungen mit der Node.js-Standardbibliothek 'fs.watch' und lösen Aktionen aus, wenn Änderungen auftreten.

Shou Arisaka
2 Min. Lesezeit
17. Nov. 2025

Dieser Artikel erklärt, wie man Dateiänderungen überwacht und Aktionen mit der Node.js-Standardbibliothek “fs.watch” auslöst.

Das Folgende ist Beispielcode aus der offiziellen Dokumentation File system | Node.js v16.1.0 Documentation mit einigen Modifikationen.

const fs = require('fs');
fs.watch('./file.txt', (eventType, filename) => {
  console.log(`event type is: ${eventType}`);
  if (filename) {
    console.log(`filename provided: ${filename}`);
  } else {
    console.log('filename not provided');
  }
});

Dies überwacht die Datei ”./file.txt” im aktuellen Verzeichnis und protokolliert, wenn Änderungen auftreten.

Für diesen Artikel implementiere ich ein Beispiel, das eine Aktion ausführt, wenn sich die Datei ändert - speziell das Warten auf Dateiänderungen und das Fortsetzen des Skripts bei einer Änderung. Hier ist das Code-Beispiel. Ich habe es so einfach wie möglich geschrieben, unnötigen Code eliminiert und nur die minimale Funktionalität implementiert.

(async function(){

    await (new Promise((resolve) => {
        fs.watch('./file', (e, f) => { resolve() })
    })); // wait for file change
    console.log("changed.");

})();

Da fs.watch keine synchrone Version wie filereadsync hat, implementieren wir es durch Kombination mit einem Promise. Wir warten auf das Promise mit “await”, und wenn sich ./file ändert, führen wir resolve() aus, um das Promise zu verlassen und mit console.log fortzufahren.

In diesem Artikel haben wir einen einfachen Mechanismus zum Warten auf Dateiänderungen mit integrierten Node.js-Bibliotheken implementiert. Wenn Sie jedoch ein Kommandozeilen-Tool mit dieser Funktionalität erstellen oder etwas Komplexeres bauen möchten, empfehle ich, andere vorhandene Bibliotheken und Kommandozeilen-Tools zu prüfen, wie z.B. bash’s “inotifywait” oder die Node.js-Bibliothek “nodemon”.

Diesen Artikel teilen

Shou Arisaka 17. Nov. 2025

🔗 Links kopieren