Чтение и запись файлов (модуль fs)
Сохраняй и загружай текст на диске с помощью Node.js
fs («файловая система») даёт нужные инструменты. Так программы «запоминают» вещи даже после того, как перестают работать.
- подключать модуль
fsчерезrequire, - читать файл как текст и записывать текст обратно,
- различать синхронный стиль, стиль с колбэком и стиль с промисами,
- выбирать подходящий стиль для задачи.
1. Знакомство с модулем fs
Модуль fs встроен в Node — ничего устанавливать не нужно. Просто подключи его в начале файла:
const fs = require('fs');
Теперь переменная fs хранит множество полезных функций, например readFileSync, readFile, writeFileSync и appendFileSync. Обрати внимание: некоторые имена заканчиваются на Sync, а некоторые нет — именно эта разница и есть суть урока.
2. Чтение файла (синхронно)
Самый простой способ прочитать файл — fs.readFileSync. Слово Sync означает «синхронно»: Node останавливается и ждёт, пока весь файл не будет прочитан, а затем отдаёт тебе результат.
const fs = require('fs');
// Read the whole file, THEN continue
const text = fs.readFileSync('poem.txt', 'utf8');
console.log(text);
// Output:
// Roses are red,
// Node reads files fast.
Всегда передавай 'utf8' вторым аргументом. Без него Node вернёт Buffer (сырые байты в виде чисел), а не читаемую строку. С 'utf8' ты получишь обычный текст, который можно вывести.
Поскольку функция ждёт, следующая строка выполнится только после того, как файл полностью прочитан. Так проще думать, но пока Node ждёт, он ничего другого делать не может.