W tym przewodniku wyjaśniono użycie czytelnych strumieni w Node.js.
Jak korzystać z czytelnych strumieni w Node.js?
„ Czytelny ” strumienie są tworzone poprzez wywołanie „ utwórzReadStream() ”, a odczytane dane można następnie wyświetlić na stronie internetowej, tworząc serwer lokalny. Słuchacze wydarzeń za pomocą „ NA() ” można także dołączyć do czytelnych strumieni, aby wyświetlać komunikaty lub wykonywać określone akcje, gdy rozpoczyna się lub kończy czytanie pliku.
Spójrz na przykład, aby zobaczyć praktyczną demonstrację.
Przykład: odczytywanie i wyświetlanie treści na serwerze przy użyciu czytelnych strumieni
W tym przykładzie zawartość udostępnionego pliku jest odczytywana, a następnie wyświetlana w przeglądarce internetowej:
konst fsObj = wymagać ( „fs” ) ;
konst httpObj = wymagać ( „http” ) ;
konst serwer lokalny = httpObj. utwórz serwer ( ( wymagać odpowiedzi ) => {
próbować {
// Docelowy plik do odczytania
konst strumień danych = fsObj. utwórzReadStream ( „usecase.txt” ) ;
// Prześlij plik do odpowiedzi
strumień danych. rura ( odpowiedź ) ;
} złapać ( błędy ) {
konsola. błąd ( błędy ) ;
}
} ) ;
serwer lokalny. Słuchać ( 8080 , ( ) => {
konsola. dziennik ( 'Serwer działa na numerze portu Localhost: '8080' ' )
} ) ;
Opis powyższego kodu wygląda następująco:
- Najpierw zaimportuj wymagane „ fs ' I ' http ” moduły i przechowują ich obiekty w „ fsObj ' I ' httpObj odpowiednio zmienne.
- Następnie utworzono serwer, wywołując opcję „ utwórz serwer() ” i zapisanie nowo utworzonego serwera w „ serwer lokalny ' zmienny.
- Następnie użyj „ próbować ” wewnątrz funkcji wywołania zwrotnego metody i wywołaj „ utwórzReadStream() ” metodą „ fsObj ' zmienny.
- Przekaż docelową zawartość pliku, którą należy odczytać w nawiasie tej metody i zapisz wynik w polu „ strumień danych ' zmienny.
- Wstaw „ strumień danych ” zmienna do „ .rura() ” metoda wysłania odpowiedzi.
- Skorzystaj z „ złapać ” do obsługi wszelkich występujących błędów.
- Na koniec nasłuchuj lub skonfiguruj serwer na numerze portu „ 8080 ” i wyświetl komunikat o powodzeniu za pomocą funkcji wywołania zwrotnego.
Wykonaj plik zawierający (controlFlow.js) powyższy kod za pomocą poniższego polecenia:
przepływ kontroli węzła. jsWygenerowane dane wyjściowe pokazują, że za pomocą „ .rura() ' I ' Czytelny strumień ”, dane pliku zostały odczytane i wysłane do strumienia docelowego w celu wyświetlenia na stronie:
Przykład 2: Lokalne odczytywanie plików statycznych przy użyciu funkcji ReadStream
W tym przypadku wybierany jest plik dostarczony w strumieniu, a jego zawartość jest następnie wyświetlana w oknie konsoli za pomocą detektorów zdarzeń:
konst fsObj = wymagać ( „fs” ) ;konst strumieńObj = fsObj. utwórzReadStream ( „usecase.txt” ) ;
strumieńObj. NA ( 'dane' , ( treść ) => {
konsola. dziennik ( treść. doString ( ) ) ;
} ) ;
strumieńObj. NA ( 'koniec' , ( ) => {
konsola. dziennik ( ' \N Skończyłem czytać plik. ) ;
} ) ;
strumieńObj. rura ( proces. standardowe wyjście ) ;
Opis powyższego kodu wygląda następująco:
- Po pierwsze ' fs ” moduł jest importowany, a jego obiekt jest zapisywany w „ fsObj ' zmienny.
- Następnie za pomocą „ fsObj ” przywołuje „ utwórzReadStream() ” i przekazuje ścieżkę docelowego pliku, którego zawartość ma zostać pobrana. Zapisz wynik metody w nowej zmiennej „ strumieńObj ”.
- Dołącz „ NA() ” z „streamObj”, która wywołuje funkcję zwrotną, gdy „ dane ” zostaje odzyskany. Pobrane dane są przekazywane jako parametr funkcji wywołania zwrotnego, która konwertuje dane do formatu String i wyświetla je w konsoli.
- Ponownie dołącz „ NA() ” metoda z „ strumieńObj ” i tym razem funkcja wywołania zwrotnego wyświetla komunikat końcowy po zakończeniu odczytu pliku.
Wygenerowane wyjście po wykonaniu powyższego kodu pokazuje, że odczytane dane wraz z komunikatem końcowym zostały wyświetlone na konsoli:
To wszystko na temat wykorzystania czytelnych strumieni w Node.js.
Wniosek
Aby pracować z czytelnymi strumieniami w Node.js, należy zastosować metodę „ utwórzReadStream() ” wywoływane jest za pomocą przycisku „ fs ” obiekt modułu. Docelowa ścieżka pliku, na którym ma zostać zapisana treść, jest następnie przekazywana jako parametr metody. Można go używać z opcją „ .rura() ” w celu wykonania dalszych zadań na pobranych danych, takich jak zapisanie zawartości w innym pliku. W tym poście przedstawiono procedurę pracy z czytelnymi strumieniami.