Start · Sprachen · JavaScript · Snippets · Datei lesen und schreiben (Node.js)

Datei lesen und schreiben (Node.js)

Ein- & Ausgabe

Liest und schreibt Textdateien asynchron mit fs/promises. Das Schreiben ist atomar: Erst wird eine temporäre Datei geschrieben, dann umbenannt, damit bei einem Absturz keine halb geschriebene Datei übrig bleibt.

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