Node FS – NodeJS Utwórz plik, odczytaj plik, zapisz do pliku

Moduł FS (File System) w Node.js jest fundamentalnym elementem, który umożliwia interakcję z systemem plików Twojego komputera. Dzięki niemu aplikacje Node.js mogą tworzyć, przeglądać, zmieniać i usuwać pliki i foldery. Jest to niezbędne narzędzie w wielu projektach, od prostych skryptów po zaawansowane serwery internetowe, gdzie operacje na plikach są nieodzowne. Pozwala na przetwarzanie danych, ich przechowywanie oraz implementację różnorodnych funkcjonalności aplikacji.

W niniejszym opracowaniu przyjrzymy się kluczowym operacjom, które można wykonać za pomocą modułu FS, w tym:

  • Inicjowanie nowego pliku
  • Pobieranie danych z istniejącego pliku
  • Umieszczanie danych w pliku

Inicjowanie Nowego Pliku

Do utworzenia nowego pliku w systemie użyjemy funkcji fs.writeFile(). Wymaga ona trzech parametrów:

  1. Ścieżka do pliku: Lokalizacja i nazwa pliku, który ma zostać utworzony.
  2. Dane: Informacje, które zostaną umieszczone w pliku. Mogą to być dane tekstowe, binarnie lub obiekt w formacie JSON.
  3. Funkcja zwrotna (Callback): Funkcja, która zostanie wykonana po zakończeniu procesu tworzenia pliku.

Przykładowo, żeby stworzyć plik nowy_plik.txt z zawartością „Witaj, świecie!”, należy użyć poniższego kodu:

const fs = require('fs');

fs.writeFile('nowy_plik.txt', 'Witaj, świecie!', (err) => {
  if (err) {
    console.error('Błąd podczas tworzenia pliku:', err);
  } else {
    console.log('Plik utworzony pomyślnie.');
  }
});

W przypadku, gdy plik o danej nazwie już istnieje, jego zawartość zostanie zastąpiona nowymi danymi.

Tworzenie Nowego Folderu

Do utworzenia nowego katalogu w systemie używamy funkcji fs.mkdir(). Wymaga ona dwóch parametrów:

  1. Ścieżka do katalogu: Lokalizacja i nazwa katalogu, który chcemy utworzyć.
  2. Funkcja zwrotna (Callback): Funkcja, która zostanie wykonana po zakończeniu procesu tworzenia katalogu.

Przykładowo, żeby utworzyć katalog nowy_katalog, należy użyć poniższego kodu:

const fs = require('fs');

fs.mkdir('nowy_katalog', (err) => {
  if (err) {
    console.error('Błąd podczas tworzenia katalogu:', err);
  } else {
    console.log('Katalog utworzony pomyślnie.');
  }
});

Gdy katalog o podanej nazwie już istnieje, funkcja fs.mkdir() zgłosi błąd.

Pobieranie Danych z Pliku

Aby odczytać zawartość pliku, użyjemy funkcji fs.readFile(), która akceptuje trzy parametry:

  1. Ścieżka do pliku: Lokalizacja i nazwa pliku, który ma zostać odczytany.
  2. Opcje: Dodatkowe opcje, które określają format danych wyjściowych (np. format tekstu, kodowanie UTF-8).
  3. Funkcja zwrotna (Callback): Funkcja, która zostanie wykonana po zakończeniu procesu odczytu pliku.

Na przykład, aby odczytać plik nowy_plik.txt i wyświetlić jego zawartość, użyjemy poniższego kodu:

const fs = require('fs');

fs.readFile('nowy_plik.txt', 'utf8', (err, data) => {
  if (err) {
    console.error('Błąd odczytu pliku:', err);
  } else {
    console.log('Zawartość pliku:', data);
  }
});

Domyślnie funkcja fs.readFile() zwraca dane w formie bufora. Aby odczytać plik jako obiekt JSON, musimy dodatkowo przetworzyć uzyskane dane, używając JSON.parse():

fs.readFile('plik.json', 'utf8', (err, data) => {
  if (err) {
    console.error('Błąd odczytu pliku:', err);
  } else {
    try{
      const obiekt = JSON.parse(data);
      console.log('Odczytany obiekt JSON:', obiekt);
    } catch (e) {
      console.error('Błąd parsowania JSON:', e);
    }
  }
});

Zapisywanie Danych do Pliku

Do zapisania danych do pliku ponownie użyjemy funkcji fs.writeFile(). Jej parametry są analogiczne jak podczas tworzenia pliku:

  1. Ścieżka do pliku: Lokalizacja i nazwa pliku, do którego zapisujemy dane.
  2. Dane: Informacje, które zostaną umieszczone w pliku.
  3. Funkcja zwrotna (Callback): Funkcja, która zostanie wykonana po zakończeniu procesu zapisu.

Aby zapisać tekst „Nowa treść” do pliku nowy_plik.txt, użyjemy poniższego kodu:

const fs = require('fs');

fs.writeFile('nowy_plik.txt', 'Nowa treść', (err) => {
  if (err) {
    console.error('Błąd zapisu do pliku:', err);
  } else {
    console.log('Plik zaktualizowany pomyślnie.');
  }
});

W przypadku, gdy plik nie istnieje, zostanie on utworzony.

Dodawanie Danych do Pliku

Aby dodać nowe dane do istniejącego pliku, bez usuwania dotychczasowej zawartości, wykorzystamy funkcję fs.appendFile(). Przyjmuje ona następujące parametry:

  1. Ścieżka do pliku: Lokalizacja i nazwa pliku, do którego dopisujemy dane.
  2. Dane: Informacje, które chcemy dodać do pliku.
  3. Funkcja zwrotna (Callback): Funkcja, która zostanie wykonana po zakończeniu procesu dodawania.

Poniższy kod zademonstruje dodanie tekstu „Dodatkowe informacje” do pliku nowy_plik.txt:

const fs = require('fs');

fs.appendFile('nowy_plik.txt', 'Dodatkowe informacje', (err) => {
  if (err) {
    console.error('Błąd podczas dodawania danych do pliku:', err);
  } else {
    console.log('Dodano nowe dane do pliku.');
  }
});

Podsumowanie

Moduł FS w Node.js udostępnia rozbudowane możliwości zarządzania plikami i folderami w ramach aplikacji. Umożliwia on tworzenie nowych plików, ich modyfikację, odczyt, a także zarządzanie strukturą katalogów. Znajomość podstawowych operacji opisanych w tym artykule jest niezbędna dla każdego programisty Node.js, który chce tworzyć bardziej zaawansowane i funkcjonalne aplikacje.

Dzięki modułowi FS, możesz w elastyczny sposób organizować i przetwarzać dane w swojej aplikacji, co pozwoli Ci tworzyć rozbudowane projekty, które efektywnie wykorzystują system plików do przechowywania i manipulacji informacjami.

Najczęściej Zadawane Pytania (FAQ)

1. Czym jest Node FS?
Node FS to wbudowany moduł w Node.js, który umożliwia aplikacjom interakcję z systemem plików.

2. Jak utworzyć nowy plik za pomocą Node FS?
Do utworzenia pliku użyj funkcji fs.writeFile().

3. Jak odczytać dane z pliku używając Node FS?
Dane z pliku odczytasz za pomocą funkcji fs.readFile().

4. Jak zapisać dane do pliku za pomocą Node FS?
Do zapisania danych użyj funkcji fs.writeFile().

5. Jak dodać dane do istniejącego pliku?
Użyj funkcji fs.appendFile().

6. W jaki sposób utworzyć nowy folder przy użyciu Node FS?
Katalog utworzysz za pomocą funkcji fs.mkdir().

7. Jak sprawdzić, czy dany plik istnieje?
Możesz użyć funkcji fs.existsSync() lub fs.access(), aby zweryfikować istnienie pliku.

8. W jaki sposób usunąć plik lub katalog?
Do usunięcia pliku użyj fs.unlink(), a do usunięcia katalogu fs.rmdir().

9. Jak sprawdzić zawartość folderu?
Zawartość folderu sprawdzisz funkcją fs.readdir().

10. Jak monitorować zmiany w plikach?
Możesz użyć funkcji fs.watch() do śledzenia zmian w plikach.