Articles

Jak definiować trasy i metody żądań HTTP w Expressie

Wprowadzenie

W tym artykule dowiemy się, jak obsługiwać trasy i metody żądań HTTP w projekcie Express. Trasy obsługują nawigację użytkownika do różnych adresów URL w całej aplikacji. Protokół HTTP, skrót od Hyper Text Transfer Protocol, komunikuje i ułatwia przesyłanie danych z serwera Express do przeglądarki internetowej.

Dowiedz się, jak definiować trasy i używać metod żądania HTTP GETPOSTPUT i DELETE do manipulowania danymi.

Wymagania wstępne

Aby ukończyć ten tutorial, zrozumienie Node.js jest pomocne, ale nie wymagane. Jeśli chcesz dowiedzieć się więcej o Node.js, sprawdź serię How To Code in Node.js.

Ustawianie projektu

Jako że Express jest frameworkiem Node.js, upewnij się, że masz zainstalowany Node.js z Node.js przed wykonaniem następnych kroków. Wykonaj poniższe polecenia w terminalu:

Utwórz nowy katalog o nazwie node-express-routing dla swojego projektu:

  • mkdir node-express-routing

Wejdź do nowego katalogu:

  • cd node-express-routing

Zainicjuj nowy projekt Node z domyślnymi ustawieniami. Będzie to zawierało twój package.json plik, aby uzyskać dostęp do twoich zależności:

  • npm init -y

Utwórz swój plik wejściowy, index.js. To tutaj będziesz obsługiwać swoje trasy i metody żądań HTTP:

  • touch index.js

Zainstaluj zarówno Express, jak i nodemon jako zależności. Będziesz używał nodemon do ciągłego restartowania projektu Express za każdym razem, gdy zmieni się plik index.js.

  • npm install express --save
  • npm install -D nodemon

Otwórz swój plik package.json za pomocą preferowanego edytora tekstu i zaktualizuj swój skrypt start, aby uwzględnić nodemon i twój plik index.js:

package.json

To pozwoli ci użyć polecenia npm start w twoim terminalu, aby uruchomić twój serwer Express i zaktualizować zmiany.

Teraz, gdy skonfigurowałeś swój projekt i skonfigurowałeś nodemon do odświeżania, gdy wykryje zmiany w twoim pliku index.js, jesteś gotowy do uruchomienia swojego serwera Express.

Uruchamianie serwera Express

Twój serwer Express jest miejscem, w którym będziesz obsługiwać logikę integrującą trasy i metody żądań HTTP. Skonfigurujesz i uruchomisz swój serwer, aby wizualizować swój projekt w przeglądarce.

Aby uruchomić serwer Express, wymagaj Express w swoim pliku index.js i przechowuj instancję w zmiennej app. Następnie zadeklaruj zmienną PORT i określ adres :3000.

index.js

Następnie dołączamy .listen() do app i jako pierwszy argument wstawiamy PORT, a następnie funkcję callback. The Express middleware .listen() tworzy lokalną przeglądarkę z adresu w twojej zmiennej PORT, aby zwizualizować twoje zmiany.

Załącz również express.json() jako argument do app.use(). Służy to do parsowania danych przychodzących przez twoje żądania HTTP. Wcześniejsza wersja opierała się na zależności body-parser, ale od tego czasu Express zawiera wbudowane oprogramowanie pośredniczące do parsowania danych.

Wykonaj następujące polecenie w swoim terminalu, aby uruchomić projekt:

  • npm start

Twój projekt jest załadowany na . Przejdź do swojej przeglądarki i zauważ, co następuje:

To jest początek działającej instancji Express. Popracujmy nad zdefiniowaniem metod HTTP, które będą wypełniać przeglądarkę.

Definiowanie metody żądania HTTP GET

Aby wyświetlić swój projekt, możesz wysłać informacje z serwera Express poprzez GET żądanie, metodę HTTP.

W index.js, dołącz .get() do swojej zmiennej app, określ anonimową trasę i dołącz wywołanie zwrotne, które uzyskuje dostęp do argumentów request i response:

index.js
 app.get('/', (request, response) => { response.send('Hello');});

Trument request zawiera informacje o żądaniu GET, natomiast response.send() wysyła dane do przeglądarki. Dane wewnątrz response.send() mogą być ciągiem znaków, obiektem lub tablicą.

Jak już zaimplementowałeś żądanie GET, przyjrzyjmy się trasom i innym metodom HTTP.

Zrozumienie tras

index.js

Jeśli przejdziesz do otrzymasz wszystkie konta w swojej tablicy:

Output

Możesz również filtrować identyfikatory kont używając punktu końcowego /:id. Express traktuje ID w punkcie końcowym /:id jako placeholder dla parametru użytkownika i dopasowuje tę wartość.

Po przejściu do , otrzymasz jedno konto, które pasuje do parametru /:id:

Output
{ "id": 3, "username": "sarahjane", "role": "guest"}

Projektowanie metod żądania HTTP POST, PUT, i DELETE

MetodyHTTP zapewniają dodatkową funkcjonalność do twoich danych za pomocą żądań POSTPUT, i DELETE. Metoda żądania POST tworzy nowe dane w Twoim serwerze, podczas gdy PUT aktualizuje istniejące informacje. Metoda DELETE usuwa określone dane.

POST

Aby utworzyć nowe dane w tablicy accounts, możesz zintegrować metodę żądania POST.

W index.js, dołącz .post() do swojej zmiennej app i dołącz trasę'/accounts' jako pierwszy argument:

index.js

Wpchniesz wszelkie przychodzące dane z twojego żądania POST do tablicy accounts i wyślesz odpowiedź jako obiekt JSON.

Twoja accounts tablica zawiera teraz nowego użytkownika:

PUT

Możesz edytować i aktualizować konkretne konto poprzez żądanie PUT.

W index.js dołącz .put() do swojej zmiennej app i dołącz trasę '/accounts/:id' jako pierwszy argument. Znajdziesz wprowadzony identyfikator konta i ustawisz warunek, aby zaktualizować o nowe dane:

index.js

Jesteś teraz w stanie zaktualizować dane w tablicy accounts. Jeśli użytkownik zmieni swoje "role":

{ "role": "guest"}

Uwaga, że "role" aktualizuje się do guest z admin w

Output
{ "id": 1, "username": "paulhal", "role": "guest"}

DELETE

Możesz usunąć użytkowników i dane za pomocą metody żądania DELETE.

Wewnątrz index.js, dołącz .delete() do swojej zmiennej app, i dołącz '/accounts/:id' jako pierwszy argument. Przefiltrujesz przez tablicę accounts i zwrócisz konto do usunięcia.

index.js

Jeśli wyślesz żądanie DELETE do , spowoduje to usunięcie konta o wartości /:id równej 1 z tablicy accounts.

Podsumowanie

Specyfikacja tras i użycie metod żądania HTTP pomagają wygenerować dodatkową wydajność podczas tworzenia, aktualizacji i usuwania użytkowników i danych w serwerze Express.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *