Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Brug af Filer som Simpel Lagring | Sektion
Node.js Grundlæggende

bookBrug af Filer som Simpel Lagring

Stryg for at vise menuen

Indtil nu har du lært at:

  • Læse data fra en fil;
  • Skrive data til en fil;
  • Tilføje nyt indhold.

Nu er det tid til at bruge filer som et simpelt lagringssystem.

Hvorfor vi har brug for strukturerede data

At gemme almindelig tekst er ikke tilstrækkeligt til rigtige applikationer.

For eksempel:

First note
Second note

Dette er svært at håndtere, fordi:

  • Det er ikke let at opdatere en specifik note;
  • Det er ikke muligt at organisere data;
  • Det er ikke muligt at tilføje ekstra information.

Brug af JSON til lagring

For at gemme strukturerede data bruger vi JSON.

JSON ligner et JavaScript-objekt:

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

Dette format gør det muligt at:

  • Gemme flere elementer;
  • Organisere data tydeligt;
  • Arbejde med det i kode.

Trin 1: Læs data fra en fil

const fs = require('fs');

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

Dette returnerer en streng.

Trin 2: Konverter JSON til JavaScript

const notes = JSON.parse(data);

Nu er notes et rigtigt array, som vi kan arbejde med.

Trin 3: Opdater data

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

Vi tilføjer en ny note til arrayet.

Trin 4: Gem data tilbage til filen

fs.writeFileSync('notes.json', JSON.stringify(notes));
  • JSON.stringify konverterer JavaScript tilbage til JSON;
  • filen opdateres med nye data.

Fuldstændigt eksempel

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

Håndtering af første kørsel (tom fil)

Hvis filen ikke eksisterer eller er tom, vil appen gå ned.

Dette kan løses ved at starte med et tomt array:

let notes = [];

try {
  const data = fs.readFileSync('notes.json', 'utf-8');
  notes = JSON.parse(data);
} catch (error) {
  notes = [];
}
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 24

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 24
some-alt