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

Tiedostojen 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

some-alt