Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как прочитать файл в 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 и возвращает значение.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.