Как прочитать файл в Node.js
Короткий ответ
readFile() из модуля node:fs/promises читает файл целиком. Передайте кодировку 'utf8', чтобы получить строку:
import { readFile, writeFile } from 'node:fs/promises';
await writeFile('notes.txt', 'Buy milk\nCall Anna');
const text = await readFile('notes.txt', 'utf8');
console.log(text);Результат:
Buy milk
Call AnnaОтсутствующий файл
Если файла нет, readFile() выбрасывает ошибку с кодом ENOENT:
import { readFile } from 'node:fs/promises';
try {
await readFile('missing.txt', 'utf8');
} catch (error) {
console.log(error.code);
}Результат:
ENOENTСинхронное чтение
В небольших скриптах проще readFileSync() из node:fs — он сразу возвращает содержимое:
import { readFileSync, writeFileSync } from 'node:fs';
writeFileSync('version.txt', '1.4.2');
console.log(readFileSync('version.txt', 'utf8'));Результат:
1.4.2Частая ошибка
Без кодировки вы получите Buffer — сырые байты, а не строку:
import { readFileSync, writeFileSync } from 'node:fs';
writeFileSync('hello.txt', 'Hi');
console.log(readFileSync('hello.txt'));
console.log(readFileSync('hello.txt', 'utf8'));Результат:
<Buffer 48 69>
HiФункции из этого ответа
- JSON.parse — Разбирает строку JSON и возвращает значение.