Використання Файлів як Простого Сховища
Свайпніть щоб показати меню
До цього моменту ви дізналися, як:
- Зчитувати дані з файлу;
- Записувати дані у файл;
- Додавати новий вміст.
Тепер настав час використовувати файли як просту систему зберігання.
Навіщо потрібні структуровані дані
Зберігання простого тексту недостатньо для реальних застосунків.
Наприклад:
First note
Second note
Це важко керувати, оскільки:
- Неможливо легко оновити конкретну нотатку;
- Неможливо організувати дані;
- Неможливо додати додаткову інформацію.
Використання JSON для зберігання
Для зберігання структурованих даних використовується JSON.
JSON виглядає як об'єкт JavaScript:
[
{ "text": "First note" },
{ "text": "Second note" }
]
Цей формат дозволяє:
- Зберігати декілька елементів;
- Чітко організовувати дані;
- Працювати з ними у коді.
Крок 1: Зчитування даних з файлу
const fs = require('fs');
const data = fs.readFileSync('notes.json', 'utf-8');
Це повертає рядок.
Крок 2: Перетворення JSON у JavaScript
const notes = JSON.parse(data);
Тепер notes — це справжній масив, з яким можна працювати.
Крок 3: Оновлення даних
notes.push({ text: 'New note' });
Додається нова нотатка до масиву.
Крок 4: Збереження даних назад у файл
fs.writeFileSync('notes.json', JSON.stringify(notes));
JSON.stringifyперетворює JavaScript назад у JSON;- файл оновлюється новими даними.
Повний приклад
const fs = require('fs');
// Read file
const data = fs.readFileSync('notes.json', 'utf-8');
// Convert to JS
const notes = JSON.parse(data);
// Update data
notes.push({ text: 'Learn Node.js' });
// Save back
fs.writeFileSync('notes.json', JSON.stringify(notes));
Обробка першого запуску (порожній файл)
Якщо файл не існує або порожній, застосунок аварійно завершить роботу.
Це можна виправити, починаючи з порожнього масиву:
let notes = [];
try {
const data = fs.readFileSync('notes.json', 'utf-8');
notes = JSON.parse(data);
} catch (error) {
notes = [];
}
Все було зрозуміло?
Дякуємо за ваш відгук!
Секція 1. Розділ 24
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат