So schreibt man Daten korrekt in eine Datei in Node.js: synchron, asynchron und über Streams
Hallo zusammen! Ich bin neu in Node.js und versuche, das Schreiben von Daten in Dateien zu verstehen. Ich habe jede Menge Dokumentation gelesen, aber mir wird schwindelig von der Anzahl der Methoden: `writeFile`, `writeFileSync`, `appendFile`, `createWriteStream`... Wann verwendet man was?
Ich habe eine einfache Anwendung zum Protokollieren von Benutzeraktionen. Ich möchte jede Aktion in eine Datei `log.txt` schreiben. Derzeit mache ich das so:
```javascript
const fs = require('fs');
function logAction(action) {
const data = `${new Date().toISOString()} - ${action}\n`;
fs.writeFile('log.txt', data, (err) => {
if (err) console.error('Fehler beim Schreiben:', err);
});
}
logAction('Benutzer hat sich angemeldet');
logAction('Benutzer hat die Schaltfläche "Kaufen" gedrückt');
```
Das Problem ist, dass manchmal nur der letzte Eintrag in der Datei steht und manchmal ist sie sogar ganz leer. Ich vermute, dass es an der Asynchronität liegt, aber ich verstehe nicht, wie man das sequenzielle Schreiben richtig organisiert.
Außerdem habe ich von `fs.promises` und `writeFileSync` gehört...