Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Työskentely Node.js:n Tiedostojärjestelmän Kanssa | Konsolisovellusten Rakentaminen Node.js:llä
Backend-kehitys Node.js:llä ja Express.js:llä

Työskentely Node.js:n Tiedostojärjestelmän Kanssa

Pyyhkäise näyttääksesi valikon

FileSystem-moduuli (fs) on Node.js:n ydinmoduuli, joka tarjoaa tehokkaat työkalut tiedostojen käsittelyyn ohjelmallisesti. Tämä moduuli on hyödyllinen monissa tehtävissä, kuten konfiguraatioiden hallinnassa, datan järjestämisessä sekä tiedostojen sisällön lukemisessa ja kirjoittamisessa.

Tiedoston lukeminen fs.readFile-metodilla

fs.readFile-metodi palauttaa lupauksen (promise), joka täyttyy tiedoston sisällöllä. Se mahdollistaa tiedostojen asynkronisen lukemisen, mikä sopii sekä teksti- että binääritiedostoihin.

fs.readFile(path, options)
  • path – luettavan tiedoston polku;
  • options – valinnainen objekti, jolla määritellään esimerkiksi merkistökoodaus.

Kuvitellaan dynaamisen blogialustan rakentamista. Tässä fs.readFile-metodi astuu esiin ja hakee nopeasti blogikirjoituksen sisällön tiedostosta.

Esimerkki: Sisällön lukeminen

const fs = require('fs').promises;

fs.readFile('blog-post.txt', 'utf-8')
  .then(content => {
    console.log('Current content:', content);
  })
  .catch(err => {
    console.error('Error reading file:', err);
  });

Vaiheittainen selitys

Tiedoston kirjoittaminen fs.writeFile-metodilla

fs.writeFile-metodi palauttaa lupauksen, joka täyttyy, kun tiedosto on kirjoitettu. Sitä käytetään datan asynkroniseen kirjoittamiseen tiedostoon, joka voi olla uusi tai olemassa oleva. Metodi tarjoaa vaihtoehtoja datan, merkistökoodauksen ja tiedoston käyttöoikeuksien määrittämiseen.

fs.writeFile(file, data, options)
  • file – tiedostopolku, johon kirjoitetaan;
  • data – kirjoitettava data, joka voi olla merkkijono tai buffer;
  • options – valinnainen olio, jossa määritellään esimerkiksi merkistökoodaus ja tiedostotila.

Kuvitellaan, että meidän täytyy tallentaa uusi käyttäjä tiedostoon user-db.json. Tässä fs.writeFile-metodi varmistaa, että tietomme tallentuvat oikein.

Koodiesimerkki: Käyttäjätietojen kirjoittaminen

const fs = require("fs").promises;

const newUser = {
  id: 1,
  username: "Nero",
  email: "arman@example.com",
};

const fileName = "user-db.json";

fs.writeFile(fileName, JSON.stringify(newUser), "utf-8")
  .then(() => {
    console.log("User information saved successfully.");
  })
  .catch((err) => {
    console.error("Error writing file:", err);
  });

Vaiheittainen selitys

Laajentaminen fs.appendFile-metodilla

fs.appendFile-metodi palauttaa lupauksen, joka täyttyy, kun data on lisätty tiedostoon. Sitä käytetään datan asynkroniseen lisäämiseen olemassa olevaan tiedostoon, jolloin aiempi sisältö säilyy.

fs.appendFile(file, data, options)
  • file – tiedostopolku, johon data lisätään;
  • data – lisättävä data, joka voi olla merkkijono tai buffer;
  • options – valinnainen olio, jossa määritellään esimerkiksi merkistökoodaus ja tiedostotila.

Kuvittele vilkas chat-sovellus, joka tallentaa keskusteluja. Kun uusia viestejä tulee, fs.appendFile-metodi lisää ne keskustelulokiin säilyttäen aiemmat viestit.

Koodiesimerkki: Chat-viestien lisääminen

const fs = require("fs").promises;

const newMessage = "User2: Hello, how are you?";

fs.appendFile("chat.txt", newMessage + "\n")
  .then(() => {
    console.log("Message added to chat log.");
  })
  .catch((err) => {
    console.error("Error appending message:", err);
  });

Vaiheittainen selitys

Note
Huomio
  • fs.writeFile korvaa tiedoston sisällön kokonaan tai luo uuden tiedoston;
  • fs.appendFile lisää uutta dataa olemassa olevan tiedoston loppuun korvaamatta aiempaa sisältöä.

1. fs-moduulin avulla voidaan käsitellä tiedostoja ohjelmallisesti.

2. Mitä menetelmää käyttäisimme tiedoston sisällön lukemiseen?

3. Miten fs.appendFile eroaa fs.writeFile-menetelmästä?

question mark

fs-moduulin avulla voidaan käsitellä tiedostoja ohjelmallisesti.

Valitse oikea vastaus

question mark

Mitä menetelmää käyttäisimme tiedoston sisällön lukemiseen?

Valitse oikea vastaus

question mark

Miten fs.appendFile eroaa fs.writeFile-menetelmästä?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 2. Luku 3
some-alt