W tym samouczku zajmiemy się platformą Express. Ta struktura jest zbudowana w taki sposób, że działa jako minimalna i elastyczna struktura aplikacji sieci Web Node.js, zapewniając solidny zestaw funkcji do tworzenia jedno- i wielostronicowych oraz hybrydowych aplikacji internetowych.
W tym samouczku nauczysz się:
- Co to jest Express.js?
- Instalowanie i używanie Express
- Jakie są trasy?
- Przykładowy serwer WWW wykorzystujący express.js
Co to jest Express.js?
Express.js to struktura serwera aplikacji internetowych Node js, która została specjalnie zaprojektowana do tworzenia jednostronicowych, wielostronicowych i hybrydowych aplikacji internetowych.
Stało się standardową platformą serwerową dla node.js. Express jest częścią zaplecza czegoś znanego jako stos MEAN.
MEAN to darmowy pakiet oprogramowania JavaScript o otwartym kodzie źródłowym do tworzenia dynamicznych witryn internetowych i aplikacji internetowych, który składa się z następujących składników;
1) MongoDB - standardowa baza danych NoSQL
2) Express.js - domyślna struktura aplikacji internetowych
3) Angular.js - Framework JavaScript MVC używany do aplikacji internetowych
4) Node.js - Framework używany do skalowalnych aplikacji po stronie serwera i aplikacji sieciowych.
Framework Express.js bardzo ułatwia tworzenie aplikacji, która może być używana do obsługi wielu typów żądań, takich jak żądania GET, PUT oraz POST i DELETE.
Instalowanie i używanie Express
Express jest instalowany przez Node Package Manager. Można to zrobić, wykonując następujący wiersz w wierszu poleceń
npm zainstaluj express
Powyższe polecenie żąda od menedżera pakietów Node pobrania wymaganych modułów ekspresowych i ich odpowiedniej instalacji.
Skorzystajmy z naszego nowo zainstalowanego frameworka Express i stwórzmy prostą aplikację „Hello World”.
Nasza aplikacja stworzy prosty moduł serwera, który będzie nasłuchiwał na porcie o numerze 3000. W naszym przykładzie, jeśli żądanie zostanie wysłane przez przeglądarkę na tym numerze portu, to aplikacja serwera wyśle klientowi odpowiedź „Hello” World ” .
var express=require('express');var app=express();app.get('/',function(req,res){res.send('Hello World!');});var server=app.listen(3000,function() {});
Objaśnienie kodu:
- W naszej pierwszej linii kodu używamy funkcji require w celu dołączenia „modułu ekspresowego”.
- Zanim zaczniemy korzystać z modułu express, musimy zrobić z niego obiekt.
- Tutaj tworzymy funkcję zwrotną. Ta funkcja będzie wywoływana za każdym razem, gdy ktoś przejdzie do katalogu głównego naszej aplikacji internetowej, którym jest http: // localhost: 3000 . Funkcja wywołania zwrotnego zostanie użyta do wysłania ciągu „Hello World” do strony internetowej.
- W funkcji zwrotnej wysyłamy do klienta ciąg znaków „Hello World”. Parametr „res” służy do wysyłania treści z powrotem na stronę internetową. Ten parametr „res” jest udostępniany przez moduł „request”, aby umożliwić wysyłanie treści z powrotem na stronę internetową.
- Następnie używamy funkcji nasłuchiwania, aby nasza aplikacja serwerowa nasłuchiwała żądań klientów na porcie nr 3000. Tutaj możesz określić dowolny dostępny port.
Jeśli polecenie zostanie wykonane pomyślnie, następujące dane wyjściowe zostaną wyświetlone po uruchomieniu kodu w przeglądarce.
Wynik:
Z wyjścia,
- Widać wyraźnie, że jeśli przejdziemy do adresu URL hosta lokalnego na porcie 3000, zobaczysz na stronie ciąg „Hello World”.
- Ponieważ w naszym kodzie wspomnieliśmy specjalnie, aby serwer nasłuchiwał na porcie nr 3000, jesteśmy w stanie wyświetlić wynik podczas przeglądania tego adresu URL.
Jakie są trasy?
Routing określa sposób, w jaki aplikacja odpowiada na żądanie klienta skierowane do określonego punktu końcowego.
Na przykład klient może wykonać żądanie GET, POST, PUT lub DELETE http dla różnych adresów URL, takich jak te pokazane poniżej;
http://localhost:3000/Bookshttp://localhost:3000/Students
W powyższym przykładzie
- Jeśli żądanie GET dotyczy pierwszego adresu URL, to w idealnym przypadku odpowiedzią powinna być lista książek.
- Jeśli żądanie GET dotyczy drugiego adresu URL, w idealnym przypadku odpowiedzią powinna być lista Studentów.
- Tak więc na podstawie adresu URL, do którego zostanie uzyskany dostęp, zostanie wywołana inna funkcjonalność na serwerze WWW i odpowiednio odpowiedź zostanie wysłana do klienta. Na tym polega koncepcja routingu.
Każda trasa może mieć jedną lub więcej funkcji obsługi, które są wykonywane, gdy trasa jest dopasowana.
Ogólna składnia trasy jest pokazana poniżej
app.METHOD(PATH, HANDLER)
W której,
1) aplikacja jest instancją modułu ekspresowego
2) METODA to metoda żądania HTTP (GET, POST, PUT lub DELETE)
3) PATH to ścieżka na serwerze.
4) HANDLER to funkcja wykonywana po dopasowaniu trasy.
Spójrzmy na przykład, jak możemy zaimplementować trasy w ekspresie. Nasz przykład utworzy 3 trasy jako
- Trasa / Node, która wyświetli ciąg „Tutorial on Node”, jeśli ta trasa jest dostępna
- Trasa / Angular, która wyświetli ciąg „Tutorial on Angular”, jeśli ta trasa jest dostępna
- Domyślna trasa /, która wyświetli tekst „Witamy w samouczkach Guru99”.
Nasz podstawowy kod pozostanie taki sam, jak w poprzednich przykładach. Poniższy fragment jest dodatkiem pokazującym, jak zaimplementowano routing.
var express = require('express');var app = express();app.route('/Node').get(function(req,res){res.send("Tutorial on Node");});app.route('/Angular').get(function(req,res){res.send("Tutorial on Angular");});app.get('/',function(req,res){res.send('Welcome to Guru99 Tutorials');}));
Objaśnienie kodu:
- Tutaj definiujemy trasę, jeśli w przeglądarce wybrany jest adres URL http: // localhost: 3000 / Node . Do trasy dołączamy funkcję zwrotną, która zostanie wywołana, gdy przejdziemy do adresu URL węzła.
Funkcja ma 2 parametry.
- Głównym parametrem, którego będziemy używać, jest parametr „res”, którego można użyć do przesłania informacji z powrotem do klienta.
- Parametr „req” zawiera informacje o wysyłanym żądaniu. Czasami dodatkowe parametry mogą być wysyłane jako część wysyłanego żądania, a zatem parametr „req” może być użyty do znalezienia dodatkowych parametrów, które są wysyłane.
- Używamy funkcji wysyłania, aby wysłać ciąg „Tutorial on Node” z powrotem do klienta, jeśli wybrano trasę Node.
- Tutaj definiujemy trasę, jeśli w przeglądarce wybrany jest adres URL http: // localhost: 3000 / Angular . Dołączamy do trasy funkcję zwrotną, która zostanie wywołana, gdy przejdziemy do adresu URL Angular.
- Używamy funkcji wysyłania, aby wysłać ciąg „Tutorial on Angular” z powrotem do klienta, jeśli wybrano trasę Angular.
- Jest to domyślna trasa, która jest wybierana podczas przeglądania trasy aplikacji - http: // localhost: 3000 . Po wybraniu trasy domyślnej do klienta zostanie wysłana wiadomość „Witamy w samouczkach Guru99”.
Jeśli polecenie zostanie wykonane pomyślnie, następujące dane wyjściowe zostaną wyświetlone po uruchomieniu kodu w przeglądarce.
Wynik:
Z wyjścia,
- Możesz wyraźnie zobaczyć, że jeśli przejdziemy do adresu URL hosta lokalnego na porcie 3000, zobaczysz na stronie napis „Witamy w samouczkach Guru99”.
- Ponieważ w naszym kodzie wspomnieliśmy, że nasz domyślny adres URL będzie wyświetlał tę wiadomość.
Z wyjścia,
- Możesz zobaczyć, że jeśli adres URL został zmieniony na / Node, wybrana zostanie odpowiednia trasa węzła i zostanie wyświetlony ciąg „Tutorial On Node”.
Z wyjścia,
- Możesz zobaczyć, że jeśli adres URL został zmieniony na / Angular, wybrana zostanie odpowiednia trasa węzła i zostanie wyświetlony ciąg „Tutorial On Angular”.
Przykładowy serwer WWW wykorzystujący express.js
Z powyższego przykładu widzieliśmy, w jaki sposób możemy zdecydować, jakie dane wyjściowe pokazać na podstawie routingu. Tego rodzaju routing jest używany w większości współczesnych aplikacji internetowych. Druga część serwera WWW dotyczy korzystania z szablonów w Node js.
Podczas szybkiego tworzenia aplikacji Node w locie, łatwym i szybkim sposobem jest użycie szablonów aplikacji. Na rynku dostępnych jest wiele frameworków do tworzenia szablonów. W naszym przypadku weźmiemy przykład jadeitowego frameworka do tworzenia szablonów.
Jade jest instalowany za pośrednictwem menedżera pakietów węzłów. Można to zrobić, wykonując następujący wiersz w wierszu poleceń
npm zainstaluj jade
Powyższe polecenie żąda od menedżera pakietów Node pobrania wymaganych modułów jade i ich odpowiedniej instalacji.
UWAGA: W najnowszej wersji Node jade został wycofany. Zamiast tego użyj mopsa.
Skorzystajmy z naszej nowo zainstalowanej platformy jade i stwórzmy kilka podstawowych szablonów.
Krok 1) Pierwszym krokiem jest stworzenie szablonu z jadeitu. Utwórz plik o nazwie index.jade i wstaw poniższy kod. Upewnij się, że plik został utworzony w folderze „widoki”
- Tutaj określamy, że tytuł strony zostanie zmieniony na dowolną wartość przekazaną, gdy ten szablon zostanie wywołany.
- Określamy również, że tekst w tagu nagłówka zostanie zastąpiony tym, co zostanie przekazane w szablonie jade.
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){res.render('index',{title:'Guru99',message:'Welcome'})});var server=app.listen(3000,function() {});
Objaśnienie kodu:
- Pierwszą rzeczą do określenia w aplikacji jest „silnik widoku”, który będzie używany do renderowania szablonów. Ponieważ będziemy używać jadeitu do renderowania naszych szablonów, określamy to odpowiednio.
- Funkcja renderowania służy do renderowania strony internetowej. W naszym przykładzie renderujemy szablon (index.jade), który został utworzony wcześniej.
- Wartości „Guru99” i „Witamy” przekazujemy odpowiednio do parametrów „tytuł” i „wiadomość”. Wartości te zostaną zastąpione parametrami „tytuł” i „komunikat” zadeklarowanymi w szablonie index.jade.
Jeśli polecenie zostanie wykonane pomyślnie, następujące dane wyjściowe zostaną wyświetlone po uruchomieniu kodu w przeglądarce.
Wynik:
Z wyjścia,
- Widzimy, że tytuł strony zostaje ustawiony na „Guru99”, a nagłówek strony na „Witamy”.
- Dzieje się tak z powodu szablonu jade, który jest wywoływany w naszej aplikacji node js.
Podsumowanie
- Framework ekspresowy jest najczęściej używaną strukturą używaną do tworzenia aplikacji Node js. Framework ekspresowy jest oparty na strukturze node.js i pomaga w szybkim śledzeniu tworzenia aplikacji serwerowych.
- Trasy służą do przekierowywania użytkowników do różnych części aplikacji internetowych na podstawie zgłoszonego żądania. Odpowiedź dla każdej trasy może być różna w zależności od tego, co należy pokazać użytkownikowi.
- Szablony mogą służyć do wydajnego wprowadzania treści. Jade to jeden z najpopularniejszych silników szablonów używanych w aplikacjach Node.js.