Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Använda Filer som Enkel Lagring | Sektion
Node.js-Grunder

bookAnvända Filer som Enkel Lagring

Svep för att visa menyn

Hittills har du lärt dig att:

  • Läsa data från en fil;
  • Skriva data till en fil;
  • Lägga till nytt innehåll.

Nu är det dags att använda filer som ett enkelt lagringssystem.

Varför vi behöver strukturerad data

Att lagra vanlig text räcker inte för riktiga applikationer.

Till exempel:

First note
Second note

Detta är svårt att hantera eftersom:

  • Vi kan inte enkelt uppdatera en specifik anteckning;
  • Vi kan inte organisera data;
  • Vi kan inte lägga till extra information.

Använda JSON för lagring

För att lagra strukturerad data använder vi JSON.

JSON ser ut som ett JavaScript-objekt:

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

Detta format gör att vi kan:

  • Lagra flera objekt;
  • Organisera data tydligt;
  • Arbeta med det i kod.

Steg 1: Läs data från en fil

const fs = require('fs');

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

Detta returnerar en sträng.

Steg 2: Konvertera JSON till JavaScript

const notes = JSON.parse(data);

Nu är notes en riktig array som vi kan arbeta med.

Steg 3: Uppdatera data

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

Vi lägger till en ny anteckning i arrayen.

Steg 4: Spara data tillbaka till filen

fs.writeFileSync('notes.json', JSON.stringify(notes));
  • JSON.stringify konverterar JavaScript tillbaka till JSON;
  • filen uppdateras med ny data.

Fullständigt exempel

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

Hantering av första körningen (tom fil)

Om filen inte finns eller är tom kommer appen att krascha.

Detta kan åtgärdas genom att börja med en tom array:

let notes = [];

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

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 24

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 24
some-alt