Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Bruk av Filer som Enkel Lagring | Seksjon
Node.js-Grunnleggende

bookBruk av Filer som Enkel Lagring

Sveip for å vise menyen

Så langt har du lært å:

  • Lese data fra en fil;
  • Skrive data til en fil;
  • Legge til nytt innhold.

Nå er det på tide å bruke filer som et enkelt lagringssystem.

Hvorfor vi trenger strukturert data

Å lagre ren tekst er ikke tilstrekkelig for ekte applikasjoner.

For eksempel:

First note
Second note

Dette er vanskelig å håndtere fordi:

  • Vi kan ikke enkelt oppdatere en spesifikk notat;
  • Vi kan ikke organisere data;
  • Vi kan ikke legge til ekstra informasjon.

Bruke JSON for lagring

For å lagre strukturert data bruker vi JSON.

JSON ser ut som et JavaScript-objekt:

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

Dette formatet lar oss:

  • Lagrer flere elementer;
  • Organisere data tydelig;
  • Arbeide med det i kode.

Steg 1: Les data fra en fil

const fs = require('fs');

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

Dette returnerer en streng.

Steg 2: Konverter JSON til JavaScript

const notes = JSON.parse(data);

Nå er notes et ekte array vi kan arbeide med.

Steg 3: Oppdater data

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

Vi legger til et nytt notat i arrayet.

Steg 4: Lagre data tilbake til filen

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

Fullstendig 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 av første kjøring (tom fil)

Hvis filen ikke eksisterer eller er tom, vil appen krasje.

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

let notes = [];

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

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 24

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 24
some-alt