Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tiedostojen Käyttäminen Yksinkertaisena Tallennustilana | Osio
Node.jsin perusteet

bookTiedostojen Käyttäminen Yksinkertaisena Tallennustilana

Pyyhkäise näyttääksesi valikon

Tähän mennessä olet oppinut:

  • Lukemaan tietoa tiedostosta;
  • Kirjoittamaan tietoa tiedostoon;
  • Lisäämään uutta sisältöä.

Nyt on aika käyttää tiedostoja yksinkertaisena tallennusjärjestelmänä.

Miksi tarvitsemme jäsenneltyä dataa

Pelkkä tekstin tallentaminen ei riitä oikeissa sovelluksissa.

Esimerkiksi:

First note
Second note

Tämän hallinta on hankalaa, koska:

  • Emme voi helposti päivittää tiettyä muistiinpanoa;
  • Emme voi järjestää tietoja;
  • Emme voi lisätä lisätietoja.

JSON:n käyttäminen tallennukseen

Jäsennellyn datan tallentamiseen käytämme JSONia.

JSON näyttää JavaScript-oliolta:

[
  { "text": "First note" },
  { "text": "Second note" }
]

Tämä muoto mahdollistaa:

  • Useiden tietueiden tallentamisen;
  • Datan selkeän järjestämisen;
  • Datan käsittelyn koodissa.

Vaihe 1: Lue data tiedostosta

const fs = require('fs');

const data = fs.readFileSync('notes.json', 'utf-8');

Tämä palauttaa merkkijonon.

Vaihe 2: Muunna JSON JavaScriptiksi

const notes = JSON.parse(data);

Nyt notes on oikea taulukko, jonka kanssa voidaan työskennellä.

Vaihe 3: Päivitä dataa

notes.push({ text: 'New note' });

Lisätään uusi muistiinpano taulukkoon.

Vaihe 4: Tallenna data takaisin tiedostoon

fs.writeFileSync('notes.json', JSON.stringify(notes));
  • JSON.stringify muuntaa JavaScriptin takaisin JSONiksi;
  • tiedosto päivitetään uudella datalla.

Täydellinen esimerkki

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));

Ensimmäisen ajon käsittely (tyhjä tiedosto)

Jos tiedostoa ei ole olemassa tai se on tyhjä, sovellus kaatuu.

Tämän voi korjata aloittamalla tyhjällä taulukolla:

let notes = [];

try {
  const data = fs.readFileSync('notes.json', 'utf-8');
  notes = JSON.parse(data);
} catch (error) {
  notes = [];
}
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 24

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 24
some-alt