Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Використання Файлів як Простого Сховища | Секція
Практика
Проекти
Вікторини та виклики
Вікторини
Виклики
/
Основи Node.js

bookВикористання Файлів як Простого Сховища

Свайпніть щоб показати меню

До цього моменту ви дізналися, як:

  • Зчитувати дані з файлу;
  • Записувати дані у файл;
  • Додавати новий вміст.

Тепер настав час використовувати файли як просту систему зберігання.

Навіщо потрібні структуровані дані

Зберігання простого тексту недостатньо для реальних застосунків.

Наприклад:

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

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 24
some-alt