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:
- Ścieżka do pliku: Lokalizacja i nazwa pliku, który ma zostać utworzony.
- Dane: Informacje, które zostaną umieszczone w pliku. Mogą to być dane tekstowe, binarnie lub obiekt w formacie JSON.
- 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:
- Ścieżka do katalogu: Lokalizacja i nazwa katalogu, który chcemy utworzyć.
- 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:
- Ścieżka do pliku: Lokalizacja i nazwa pliku, który ma zostać odczytany.
- Opcje: Dodatkowe opcje, które określają format danych wyjściowych (np. format tekstu, kodowanie UTF-8).
- 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:
- Ścieżka do pliku: Lokalizacja i nazwa pliku, do którego zapisujemy dane.
- Dane: Informacje, które zostaną umieszczone w pliku.
- 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:
- Ścieżka do pliku: Lokalizacja i nazwa pliku, do którego dopisujemy dane.
- Dane: Informacje, które chcemy dodać do pliku.
- 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.