W tym przewodniku wyjaśniono procedurę tworzenia żądań HTTP za pomocą modułu żądań Node.js, omawiając poniższe sekcje:
Jak wysyłać żądania HTTP za pomocą modułu żądań Node.js?
Alternatywy dla modułu żądań Node.js
- Metoda 1: Wykonywanie żądań HTTP przy użyciu domyślnego modułu HTTP
- Metoda 2: Wykonywanie żądania HTTP przy użyciu zewnętrznego modułu Axios
Jak wysyłać żądania HTTP za pomocą modułu żądań Node.js?
„ wniosek ” to najprostszy moduł, który pomaga w wysyłaniu lub pobieraniu żądań HTTP. Ten moduł jest zbyt prosty i łatwy do zrozumienia, ale zapewnia programistom bardzo małą swobodę. Co więcej, programista nie może łatwo zmodyfikować jego podstawowej funkcjonalności ani ulepszyć dostarczonych funkcji.
Notatka: Chociaż ' wniosek ” to dobry moduł. Jednak jego twórcy postanowili zaprzestać prac nad tym modułem i 11 lutego 2020 r. został on całkowicie wycofany.
Jeśli jednak nadal chcesz poznać pomysł na wdrożenie tego „ wniosek ”, a następnie wykonaj poniższe kroki.
Krok 1: Instalacja modułu „request” i inicjalizacja projektu Node.js
Zacznij od zainicjowania „ npm ” w żądanym katalogu, aby utworzyć projekt Node.js, uruchamiając polecenie:
inicjacja npm - IDane wyjściowe pokazują, że „npm” został pomyślnie zainicjowany w podanym katalogu:
Następnie zainstaluj wymagane „ wniosek ” wykonując polecenie:
żądanie instalacji npmDane wyjściowe pokazują, że instalacja została zakończona, ale ponieważ ten moduł jest przestarzały, dlatego „npm” wysłał przestarzałe ostrzeżenie:
Krok 2: Wstawianie fikcyjnego kodu
Stwórz ' .js ” wpisz plik w katalogu projektu Node.js, jest to plik, w którym programy są wstawiane i uruchamiane później. Następnie wstaw poniższe linie kodu, aby zilustrować praktyczną implementację „ wniosek ”, jak pokazano poniżej:
konst reqObj = wymagać ( 'wniosek' )niech baseUrl = „https://jsonplaceholder.typicode.com/todos/6” ;
reqObj ( bazowy adres URL, ( zagadnienia, treść ) => {
Jeśli ( kwestie ) konsola. dziennik ( kwestie )
konsola. dziennik ( treść ) ;
} ) ;
Wyjaśnienie powyższego bloku kodu jest następujące:
- Po pierwsze ' wniosek ” moduł został zaimportowany, a jego obiekt jest zapisany w nowej zmiennej o nazwie „ reqObj ”.
- Następnie adres URL pliku JSON online, którego zawartość wymaga pobrania, jest przekazywany jako wartość parametru „ bazowyUrl ” nazwana zmienna.
- A później ' reqObj ” zmienna jest wywoływana jako konstruktor, a zmienna „ bazowyUrl ” jest przekazywana jako pierwszy parametr, a funkcja wywołania zwrotnego jako drugi parametr.
- Wewnątrz funkcji wywołania zwrotnego, „ Jeśli ” służy do wyświetlania wszelkich występujących błędów, a pobrane dane są również wyświetlane w oknie konsoli.
Krok 3: Wykonanie
Aby wykonać powyższy kod, uruchom zawierający go plik o nazwie „ proApp.js ” w naszym przypadku za pomocą polecenia:
węzeł proApp. jsDane wyjściowe po wykonaniu pokazują, że określone dane zostały pobrane i wyświetlone na konsoli:
Alternatywy dla modułu żądań Node.js
W związku z deprecjacją „ wniosek ”, istnieje wiele nowych modułów zewnętrznych, które można wykorzystać do realizacji podobnej funkcjonalności. Te alternatywne moduły są wymienione poniżej:
Alternatywy | Opis |
pobieranie węzła | Jest to moduł obietnicy lub oparty na strumieniu, który udostępnia metodę window.fetch() w Node.js. |
http | „ http ” jest domyślnym modułem dostarczanym przez Node.js i zapewnia kilka metod interakcji z serwerami http, zapewniając jednocześnie większą swobodę. |
osie | Opiera się wyłącznie na obietnicach i strumieniach w celu wykonywania żądań HTTP za pośrednictwem przeglądarki, zarówno po stronie serwera, jak i klienta. |
dostał | Jest to bardzo przyjazna dla człowieka i najpotężniejsza biblioteka dla żądań HTTP. |
superagent | Oparty na łańcuchu i obietnicach, zapewniając jednocześnie obsługę wielu klientów HTTP wysokiego poziomu. Ma również niską krzywą uczenia się. |
zgięty | Jest to funkcjonalny protokół HTTP, który zwraca funkcję typu asynchronicznego. |
sprawić, że się stanie | Udoskonalona forma „ pobieranie węzła moduł. Obejmuje teraz „łączenie żądań”, „obsługę pamięci podręcznej” i wiele więcej. |
igła | Ten moduł jest najczystszym i najbardziej zaawansowanym modułem. Służy głównie do pobierania danych poprzez wysyłanie żądań do źródeł zewnętrznych. |
malutki-json-http | Minimalistyczny klient HTTP używany do wykonywania ładunków JSON. |
Teraz wykonajmy żądania HTTP, wykorzystując niektóre moduły omówione powyżej.
Metoda 1: Wykonywanie żądań HTTP przy użyciu domyślnego modułu HTTP
„ http ” jest modułem domyślnym, ponieważ jest instalowany automatycznie w momencie inicjalizacji projektu node.js poprzez uruchomienie polecenia „ inicjacja npm ' Lub ' npm init -y ”. Ponieważ stworzyliśmy już projekt node.js, pomijamy kroki inicjujące pokazane na początku tego artykułu i przechodzimy bezpośrednio do tworzenia żądań http za pomocą modułu „http”.
W poniższym fragmencie kodu serwer został utworzony i w odpowiedzi do serwera wysyłana jest fikcyjna wiadomość:
konst httpObj = wymagać ( „http” ) ;konst serwer lokalny = httpObj. utwórz serwer ( ( wymagać odpowiedzi ) => {
odpowiedź. pisać ( „Witamy na stronie na Twitterze” ) ;
odpowiedź. koniec ( ) ;
} ) ;
serwer lokalny. Słuchać ( 8080 , ( ) => {
konsola. dziennik ( „serwer został uruchomiony na porcie o numerze 8080.” ) ;
} ) ;
W powyższym bloku kodu:
- Po pierwsze ' http ” moduł został zaimportowany do bieżącego pliku, a jego obiekt jest zapisany w nowej zmiennej o nazwie „ httpObj ”.
- Następnie serwer o nazwie „ serwer lokalny ” jest tworzony poprzez wywołanie „ utwórz serwer() ” i przekazanie funkcji wywołania zwrotnego jako jej parametru.
- Wewnątrz tej funkcji wywołaj „ pisać() ” i przypisz jej fałszywy komunikat, który będzie wyświetlany na serwerze. Zamknij także sesję odpowiedzi, wywołując opcję „ koniec() ”, losowy komunikat fikcyjny można również wstawić w nawiasie metody.
- Następnie spraw, aby ten serwer działał na serwerze lokalnym o numerze portu „ 8080 ”, powołując się na „ Słuchać() ' metoda.
Wykonaj powyższy kod zawierający plik, uruchamiając poniższe polecenie:
węzeł < Nazwa pliku. js >Wygenerowane dane wyjściowe potwierdzają, że żądania HTTP zostały wykonane za pośrednictwem domyślnego „ http moduł:
Metoda 2: Wykonywanie żądania HTTP przy użyciu zewnętrznego modułu Axios
„ osie ” to najpopularniejszy i najczęściej używany moduł, jeśli chodzi o realizację żądań HTTP w środowisku czasu rzeczywistego. Aby skorzystać z tego modułu, programista musi go najpierw zainstalować, wykonując poniższe polecenie:
npm zainstaluj osiePo wykonaniu polecenia terminal wygląda następująco:
Przyjrzyjmy się teraz przykładowi, w którym „ DOSTAWAĆ ” Żądanie HTTP zostanie użyte do pobrania danych z losowego interfejsu API. Następnie odebrane dane są również wyświetlane na konsoli:
konst axiosObj = wymagać ( „osie” ) ;// Adres URL interfejsu API zastępczego JSON Aby wybrać tylko część danych o identyfikatorze 5
konst apiUrl = „https://jsonplaceholder.typicode.com/todos/5” ;
//Inicjowanie żądania GET
axiosObj. Dostawać ( apiUrl )
. Następnie ( odpowiedź => {
konsola. dziennik ( „Stan odpowiedzi z interfejsu API to:” , odpowiedź. status ) ;
konsola. dziennik ( „Dane otrzymane z interfejsu API w odpowiedzi na żądanie:” , odpowiedź. dane ) ;
} )
. złapać ( błąd => {
konsola. błąd ( „Wystąpił błąd:” , błąd ) ;
} ) ;
Poniżej znajduje się wyjaśnienie powyższego bloku kodu:
- Najpierw zaimportuj „ osie ” i zapisz jej instancję w zmiennej o nazwie „ axiosObj ”, który pełni rolę obiektu biblioteki „axios”.
- Następnie utwórz zmienną „ apiUrl ” i zapisz adres URL API, z którego mają zostać pobrane dane. W naszym przypadku adres URL to „ https://jsonplaceholder.typicode.com/todos/5 ”, ponieważ chcemy pobrać dane o identyfikatorze „ 5 ”.
- Teraz przy pomocy „ axiosObj ” przywołać „ Dostawać() ” i przekazać metodę „ adres aplikacji ” zmienna wewnątrz nawiasu tej metody.
- Dołącz „ Następnie() ” metodą „ Dostawać() ” i utwórz anonimową funkcję strzałkową zawierającą pojedynczy parametr „ odpowiedź ”.
- Ten ' odpowiedź ” pełni rolę obiektu zawierającego wartości lub dane zwrócone w odpowiedzi na żądanie za pośrednictwem „ Dostawać() ' metoda.
- Za pomocą tego „ odpowiedź ”, pobierz status żądania i treść, załączając obiekt „ status ' I ' dane ” słowa kluczowe obok niego.
- Na koniec dołącz „ złapać() ” metoda wyświetlająca błędy, jeśli takie wystąpiły podczas wykonywania programu.
Teraz skompiluj powyższy kod w środowisku Node.js, używając poniższego polecenia na terminalu:
węzeł < Nazwa pliku >Wyświetlone dane wyjściowe pokazują, że żądane dane zostały pobrane z podanego źródła w odpowiedzi i wyświetlone w oknie konsoli:
Chodzi o tworzenie żądań HTTP za pomocą modułu żądań Node.js i szybki przegląd jego alternatyw.
Wniosek
Aby wysłać żądanie HTTP za pośrednictwem „ wniosek ”, wymagany adres URL, z którego będzie wykonywane pobieranie. Następnie tworzona jest instancja modułu „request”, a jako pierwszy parametr przekazywany jest wybrany adres URL, dla którego ma zostać zrealizowane żądanie HTTP. Wymagana funkcja wywołania zwrotnego jest również wykorzystywana do sprawdzania ewentualnych błędów i pobierania treści lub odpowiedzi na żądanie HTTP. W tym przewodniku wyjaśniono proces tworzenia żądań HTTP przy użyciu modułu żądania.