Obsługa plików w węźle.JS za pomocą strumieni | Wyjaśniono przykładami

Obsługa plików w węźle.JS za pomocą strumieni | Wyjaśniono przykładami
Budowanie rzeczywistych aplikacji często wymaga, aby program był w stanie wchodzić w interakcje z plikami i systemami plików, a budowanie aplikacji w środowisku NodeJS nie jest wyjątkiem. W przypadku interakcji danych z plikami za pośrednictwem nodejs istnieje zastosowanie koncepcji strumieni. Strumienie w NodeJS nie są koncepcją tylko węzła, po raz pierwszy został zaimplementowany w systemie operacyjnym opartym na Unixie.

Strumienie są sposobem na odczyt pliku bit-bit i przekazanie małych kawałków danych do serwera, a nie odczytanie pliku jako całości, a następnie przekazywanie informacji do serwera jako jeden plik dużych danych. To może nie wyglądać na wielką sprawę, ale w rzeczywistości oszczędza to dużo czasu na serwerze.

Strumienie w NodeJS

Strumienie działają jako kolejka za pomocą bufora, bufor to niewielka tymczasowa przestrzeń używana do przechowywania części danych, które mają zostać przeniesione. Bufor działa jak kolejka, jeśli chcesz przenieść dużą ilość danych z jednego punktu do drugiego, następnie bufor ładuje kawałek danych i przekazuje go na serwer i czeka na odpowiedź serwera, aby mógł odrzucić ten kawałek danych z kolejki. Podczas gdy czeka na odpowiedź serwera, ładuje więcej fragmentów danych w oparciu o rozmiar bufora zestawu przez programista lub aplikację.

Cały proces uzyskania kawałka z pliku, ładowania go do bufora, a następnie analizowania tego porodu na serwer aplikacji jest znany jako A Strumień. W NodeJS istnieją trzy różne rodzaje strumieni

  • Strumień tylko do odczytu nazywany czytelnym strumieniem
  • Strumień tylko do zapisu o nazwie Wisły Stream
  • Strumień odczytu i zapisu nazywa się strumieniem dupleksu

Czytanie danych z pliku za pośrednictwem strumieni w NodeJS

Aby rozpocząć od samouczka, musisz użyć polecenia w terminalu:

NPM Init -y

To stworzy dla nas nowy projekt węzłów wraz z pakietem.plik JSON w naszym katalogu

Aby odczytać niektóre dane z pliku za pomocą nodejs, potrzebujesz pliku z tekstem. Dlatego utwórz nowy plik tekstowy i umieść niektóre „LoreM ipsum” Tekst za pomocą generatora LoreM ipsum.

Skopiuj ten tekst i umieść go w pliku tekstowym i zapisz plik tekstowy:

Jak widać, nazwa pliku tekstowego jest "moje dane.tekst". Utwórz nowy plik JavaScript w tym samym katalogu i nazwij go „Streamdemo.JS ”

Aby utworzyć strumień odczytu lub zapisu, musimy użyć „FS” moduł, który jest wbudowanym modułem środowiska węzłów. Uwzględnić fs Moduł w programie Użyj następujących wierszy kodu:

var fs = wymaga („fs”);

Następnie musimy utworzyć strumień odczytu z naszego pliku tekstowego (który jest umieszczony w tym samym katalogu, co StreamDemo.plik JS) za pomocą następującego wiersza:

var myReadStream = fs.Crereadstream (__ dirname + '/mydata.tekst');

Teraz możemy użyć tej zmiennej „MyReadstream” wykonywać zadanie za każdym razem, gdy otrzymuje nową część danych. Do wydrukowania fragmentu na konsoli użyj linii kodu, za każdym razem, gdy nasz strumień otrzymuje nowy kawałek:

myReadstream.on („data”, funkcja (chunk)
konsola.Log („Nowy kawałek został zaakceptowany przez program”);
konsola.log (fragment);
);

Aby uruchomić ten program, w Typ terminali następujące polecenie:

Węzeł strumieniowy

W konsoli zobaczysz następujące dane wyjściowe:

Jak widać, mogliśmy odbierać i wydrukować dane z naszego pliku, jednak dane, które dostajemy na konsoli, nie są takie same, jak ten, który mamy w naszym pliku. Jest tak, ponieważ musimy ustawić procedurę kodowania w strumieniu odczytu. Zmień linię strumienia odczytu, aby dopasować następujący wiersz kodu:

var myReadStream = fs.Crereadstream (__ dirname + '/mydata.txt ', „utf8”);

Jak widać, dodaliśmy „UTF8” kodowanie do naszego strumienia. Teraz, jeśli ponownie powtórzymy za pomocą „Węzeł strumieniowy” polecenie otrzymujemy następujący wynik na naszym terminalu:

I proszę bardzo, czytamy prawidłowe dane z pliku i drukujemy je na konsoli

Zapisanie danych do pliku za pośrednictwem strumieni w NodeJS

Możemy napisać do pliku za pomocą strumienia zapisu w NodeJS, który również jest dostarczany z modułem „FS”. Napiszemy dane otrzymane w poprzedniej sekcji i napiszemy nowy plik, który napiszemy.tekst

Aby zapisać dane do pliku, utworzymy nowy Zapisz strumień Korzystanie z poniższego wiersza kodu:

var myWriteStream = fs.CreateWriteStream (__ dirname + '/writeinme.txt ', „utf8”);

Jak można zauważyć, już dołączyliśmy „UTF8” kodowanie w strumieniu zapisu. Aby napisać fragment, który otrzymujemy od "moje dane" Plik tekstowy do nowego pliku, którego zamierzamy użyć następującego kodu:

myReadstream.on („data”, funkcja (chunk)
konsola.Log („Nowy kawałek został zaakceptowany przez program”);
MyWriteStream.napisz (fragment);
konsola.log („Chunk napisany do nowego pliku tekstowego”);
);

Wykonaj program za pomocą polecenia:

Węzeł strumieniowy

Otrzymasz następujące dane wyjściowe:

Jak widać w Eksploratorze edytora kodu, że nowy tekst pliku został automatycznie utworzony, a jeśli kliknij dwukrotnie „Writeinme ” Plik tekstowy zobaczysz następujące dane w tym pliku:

Tak więc z powyższego obrazu wynika, że ​​mogliśmy zapisać dane do pliku za pomocą strumieni

Wniosek

Strumienie służą do ładowania danych do od plik \ na aplikację bit-bit lub w małych kawałkach. Możemy odczytać i zapisywać dane za pomocą strumieni zawartych w FS (system plików) moduł. Moduł systemu plików (FS) jest dostępny jako wbudowany moduł z NodeJS. Istnieją trzy różne typy strumieni, a mianowicie: czytelny strumień, zapisany strumień i strumień dupleks. W tym poście zaimplementowaliśmy prosty program węzłów, który pozwolił nam odczytać dane z pliku i zapisać je do innego pliku za pomocą strumieni danych i buforów.