Code
import { readFile, writeFile, rename, mkdir } from 'node:fs/promises';
import { dirname } from 'node:path';
// Datei lesen – gibt null zurück, wenn sie nicht existiert
export const readText = async (path) => {
try {
return await readFile(path, 'utf8');
} catch (err) {
if (err.code === 'ENOENT') return null;
throw err;
}
};
// Atomar schreiben: erst in Temp-Datei, dann umbenennen
export const writeText = async (path, data) => {
await mkdir(dirname(path), { recursive: true });
const tmp = `${path}.${process.pid}.tmp`;
await writeFile(tmp, data, 'utf8');
await rename(tmp, path);
};
// Verwendung (ESM, top-level await)
await writeText('./data/notes.txt', 'Erste Zeile\n');
const content = await readText('./data/notes.txt');
console.log(content);
Erste Zeile