Zacznij od Express.js

Jan 25, 2026
Jak
Get started with Express.JS

Tworzenie aplikacji do przeglądarki z węzłem. Express.js. jest JavaScript Framework. Dedykowane do zastosowań jednorazowych i wielostronnych hostowanych w środowisku węzła.

  • 29 Narzędzia projektowania stron internetowych, aby przyspieszyć przepływ pracy

Zapewnia cienką warstwę podstawowej funkcji aplikacji internetowych, które nie zasłaniają funkcji Node.js, które już znasz, dzięki czemu możesz być pewien, że gotowa aplikacja będzie zaduszona wydajność. I świetnie jest tworzyć solidne interfejsy API, dzięki stosowi metodom narzędzia HTTP i oprogramowanie pośredniego gotowe do użycia.

Jeśli chcesz mniej złożonej opcji, możesz utworzyć witrynę bez kodowania za pomocą Kreator strony internetowej . Tak czy inaczej, upewnij się, że masz swoje hosting słuszność prawa. Chcesz zacząć? Oto, co musisz wiedzieć o Express.js.

01. Wygeneruj strukturę czynnościową

Get started with Express.JS: Generate a workable structure

Wprowadzić odpowiednie opcje robocze, aby rozpocząć

Express.js szczyci się jako "nieskończony" - to znaczy, ramy pozwala deweloperowi mieszać i dopasować w zakresie architektur, szumów i silników marudowych. Niestety, z wielką mocą przychodzi wielka odpowiedzialność.

Zespół deweloperski Express stara się zmiękczyć, wprowadzając generator projektu (jeśli projektujesz obok zespołu, wdrażasz najlepsze magazyn w chmurze zachować spójne rzeczy). Przychodzi do stacji roboczej w formie pakietu NPM i pomoże naszym eksperymentom z następującymi ramami:

 Tamhan @ Tamhan-ThinkPad: ~ / Desktop /
Rzeczy / 2018aug / futureexpressjs /
Workspace $ Sudo NPM Instalacja
Express-Generator -g 

Generator zawiera również dziesiątki opcji projektu - Figura dołączona do tego kroku pokazuje pełną wydajność pomocy. Dla dobra prostoty ograniczymy się do projektu na podstawie ustawień domyślnych. Wyrzuć proces wytwarzania z:

 Tamhan @ Tamhan-ThinkPad: ~ / Desktop /
Rzeczy / 2018aug / futureexpressjs /
Workspace $ Express futuresest 

Ostrzeżenie: Domyślny silnik widoku nie będzie jade w przyszłych wersjach.

Po zakończeniu bieżący katalog roboczy zawiera nowy folder o nazwie "futuresest". Jest domem dla naszego projektu testowego i musi być skonfigurowany za pomocą polecenia pobierz pakiet NPM. W momencie pisania generator obejmuje generator jade-view - projekt planuje zmienić to w najbliższej przyszłości, zobowiązującym do przekazania parametru wyboru zamierzonego silnika widoku. Alternatywnie, poprosić o użycie mopsowania - jest to oficjalny następca jadey silnika:

 CD futuresest /
NPM Zainstaluj 

02. Zrozum strukturę aplikacji

Teraz, gdy generator projektu zrobił swoją rzecz, pozwól nam otworzyć app.js w edytorze wyboru. Jego - znacznie skrócona - struktura przedstawia się zgodnie z:

 Var IndeksRouter = wymagać ("./
trasy / indeks ");
var usersrouter = wymagać ("./
trasy / użytkowników);
var app = express ();
// Wyświetl konfigurację silnika
app.set ("widoki", path.join (__
Dirname, "widoki");
app.set ("widoku silnika", "jade");
app.use (rejestrator ("dev"));
app.use (Express.json ());
app.use (Express.urlended ({
rozszerzony: false}));
app.use (Cookieparser ());
app.use (Express.stic (ścieżka.
Dołącz (__ Digname "))); 

Express.js jest bardzo modułowy. App.js służy jako punkt wejścia, w którym działa jedno lub więcej funkcji "użycia ()" umożliwiają dodanie komponentów przeznaczonych do obsługi różnych żądań. Inwokacje "Set ()" pozwalają dostosować parametry w silniku - jeden z nich jest instalowaniem silnika z jaderem wymienionym w poprzednim kroku.

Rzeczywista emisja zawartości internetowej odbywa się w klasach routera. Dla dobra zwięzłości, ograniczmy się do indeksu:

 var Express = wymagać ("Express");
var router = express.router ();
router.get ('/', funkcja (Req, RES,
Kolejny) {
  res.Render ("indeks", {tytuł:
"Express"});
});
module.exports = router; 

"Get ()" jest dostarczany z ciągiem dopasowania i obsługiwaniem zdarzeń, który zostanie wywołany, gdy wystąpi odpowiednie zdarzenie. W naszym przypadku metoda renderowania wybranego silnika szablonu jest kazna, aby zwrócić zawartość do przeglądarki użytkownika, który się zalogował.

03. Uruchom stronę internetową

W tym momencie jesteśmy gotowi zrobić stronę internetową na pierwszy raz. Wróć do terminalu zawierającego instalację Express.js i zadzwoń na NPM Start od zestawu flagi debugowania:

 Debug = MyApp: * Start NPM 

Po zakończeniu wprowadź http: // localhost: 3000 / w przeglądarce wyboru, aby spojrzeć na rusztowania utworzone przez generatora projektu. Po zakończeniu naciśnij Ctrl. +. do Aby zamknąć okno i zwracanie kontroli do tłumacza wiersza poleceń - pamiętaj, że zamyka to również debugujący serwer WWW.

04. Chodzi o routing i punkty końcowe

Get started with Express.JS: Routing and endpoints

Sortuj odpowiednie punkty wejścia, dodaj nowe trasy i wprowadzaj regularne wsparcie ekspresji

Ze względu na prostotę zgodzimy się, że aplikacja internetowa zwykle składa się z sekwencji punktów wejścia. Express.js obsługuje te za pomocą klasy routera - pomyśl o tym jako repozytorium metod, które zwracają się w odpowiedzi na żądanie przychodzące.

Dodanie nowego punktu końcowego do aplikacji jest realizowane przez dodanie nowego pracownika do kolejki. Nasz automatyczny przykład tworzy dwa typy routerów, z których każda jest podnoszona przy użyciu metody "wymaga":

 Var IndeksRouter = wymagać ("./
trasy /
indeks');
var usersrouter = wymagać ("./
trasy /
Użytkownicy); 

W następnym kroku "app.use" rejestruje routery i łączy je do ciąży żądania. Nasz kod, dodaje ponadto przewodnik błędów, który zostanie przywołany, jeśli nie istniejący adres URL zostanie wprowadzony do systemu:

 App.use ('/', Indexouter);
app.use ('/ Użytkownicy, użytkownicyRouter);
App.use (Funkcja (Req, RES, Dalej)
{
  Następny (CreateCror (404));
}); 

05. Utwórz nową trasę

Otwórz użytkowników.js i zmodyfikuj swój kod jak poniżej:

 router.get ('/ user1', funkcja (wymagania,
res,
Kolejny) {
  res.send ("przyszłość mówi Hello
1 ');
});
router.get ('/', funkcja (Req, RES,
Kolejny) {
  res.send ("reaguj z a
ratunek');
}); 

Dodawanie nowych tras do Express.js jest procesem mechanicznym. Chwyć obiekt wyboru routera i wywołaj metodę odpowiadającą czasownika HTTP, którego szukasz. Następnie przejdź w ciągu, który zostanie dodany do "offset" zarejestrowanego w "App.use". Od tego momentu, zarówno http: // localhost: 3000 / użytkowników / User1 i http: // LocalHost: 3000 / Użytkownicy / Zwróć poprawną odpowiedź.

Należy pamiętać, że Express.js nie ogranicza się do zasobów "Get". "Post ()", "Utwórz ()" i "Usuń ()" obsługuje tradycyjne cztery żądania HTTP, z dziesiątkami dodatkowych metod czasowników catering do bardziej niezwykłych potrzeb. Wreszcie obiekt "Req" zapewnia dostęp do nagłówka żądania - umieścić go do dobrego użycia podczas parsowania parametrów lub informacji o kliencie.

06. Dopasowanie zaawansowane.

Dodawanie tras ręcznie staje się nużący, ponieważ rośnie złożoność programu. Express.js zaspokoi dla tego problemu, wprowadzając zarówno wieloznaczne i regularne wsparcie wyrażenia Na przykład, spójrz na następną deklarację, która wykorzystuje wyrażenie regularne do dopasowania do różnych strun zawierających psa sekwencji znaków.

 App.get (/.* Dog $ /, Funkcja (REQ,
res) {
  ...}) 

07. Nieprawidłowe routing.

Podczas obchodzenia się z czterema żądaniami HTTP powinny być wystarczające dla każdego (Kapelusz Tip do Billa Gates), Express.js mogą również pracować z dodatkowymi protokołami. Express-WS. Jest szczególnie smacznym kandydatem do tej sekcji - rozszerza zasięg Express.jsa, aby uwzględnić komunikaty internetowe.

Po dodaniu wtyczki do głównego projektu Express.js, umożliwiając to osiągnięcie za pośrednictwem połączenia "wymaga". Zwraca obiekt pomocniczy zawierający wszystko, ale jedną metodę - zadzwoń do ustalenia połączenia między routerem a wtyczką:

 var Expressws = wymagać ("Express-
WS ')
aplikacja);
Po tym można wywołać nową metodę "WS ()", aby dodać nowe trasy oparte na technologii WebSocket:
app.ws ('/', funkcja (WS, Req) {
  Weside ("wiadomość", funkcja (MSG)
{
    konsola.log (MSG);
  });
  Console.log ("Gniazdo", Req.
testowanie); }); 

Ich prototyp różni się od normalnych tras ze względu na obecność obiektu "WS" - zapewnia dostęp do podstawowej instancji WebSocket podłączony do klienta odpowiedzialnego za połączenie.

08. Zintegruje bazy danych i silniki szablonujące

Get started with Express.JS: Integrate databases and templating engines

Pamiętaj, aby zastosować moc bogatego ekosystemu wtyczki

Na podstawie węzła.js oznacza, że ​​bogaty ekosystem wtyczek znajduje się na twoim polecenie podczas pracy w aplikacjach internetowych. Na przykład uzyskiwanie dostępu do baz danych SQL i NOBQL - zwykle niezwykle żmudne zadanie - można obsługiwać za pomocą wtyczek dostarczonych przez dostawców bazy danych. Rzeczywiste wdrażanie jest tak proste, jak instalowanie potrzebnego modułu NPM - jeśli kod ma uzyskać dostęp do bazy danych Redis, po prostu dodaj następujące elementy:

var redis = wymagać ("redis")
var client = redis.createClient ()
client.set ("strningkey", "aval",
redis.print)
. . . 

Oczywiście obsługuje również SQLite w pamięci:

 var sqlite3 = wymagać ("sqlite3").
gadatliwy()
var db = Nowy sqlite3.
Baza danych (": pamięć:")
db.serialize (funkcja () {
  db.run ("Utwórz Loremu Tabeli
(tekst informacyjny) ') 

Należy pamiętać, że integracja węzła.jsa nie jest ograniczona do wtyczek bazy danych. Przygód deweloperzy mogliby iść tak daleko, jak włączyć produkty takie jak tessela, tworząc w ten sposób aplikacje internetowe, które mogą również współdziałać Internet przedmiotów urządzenia.

09. Templating w stylu

Jeden obszar, w którym różnią się proste i prawdziwe programy to tworzenie poglądów. Podczas gdy mały przykładowy projekt zwykle korzysta z ręcznie wykonanych ciągów, montaż dużych pokosów HTML z ciągiem połączonych rzeczy jest wysoce denerwujące.

Silniki szablonów zapewniają schludny obejście. Pozwalają na stworzenie predefiniowanych plików schematu, które mogą być wypełnione programowo w wykonaniu.

W przypadku naszego przykładowego programu widoki leżały w plikach .jade. Indeks otwierania ujawnia następującą strukturę:

 Rozszerza układ
Treść blokowa
  h1 = tytuł
  p Witamy na # {tytuł} 

Wyrażenia zamknięte w nawiasach kręconymi działają jako pola szablonów, których wartości należy wymienić w czasie wykonywania. Index.js wywołuje renderowania z obiektem parametru, prowadząc do renderowania strony startowej pokazanej na rysunku załączającym ten krok:

 router.get ('/', Funkcja (Req, Res,
Kolejny) {
  res.Render ("indeks", {tytuł:
"Express"});
}); 

Większość silników szablonujących może również analizować tablice po dostarczeniu z szablonu przedmiotu. W takim przypadku każda linia tablicy jest wyświetlana z jedną instancją modelu Domu - podobieństwa do modelu wyświetlania listy znalezionych w Androidzie są czysto przypadkowe. Express.js nie ogranicza się do predefiniowanych silników szablonujących. Jeśli masz ochotę na toczenie z jakiegoś powodu, po prostu postępuj zgodnie z opisem kroków tutaj - Zasadniczo musisz zastąpić wszystko, ale jedną funkcję.

10. Obsługuj zawartość statyczną

Aplikacje Express.js zazwyczaj zawierają pliki CSS i zdjęć. Obsługa tych za pośrednictwem funkcji renderowania jest nieefektywny - mądrzejszy sposób wiązałby się do wysłania ich na ich wesoły sposób z tradycyjnym żądaniem HTTP. Można to osiągnąć za pośrednictwem funkcji "Express.stic ()", która może oznaczać całe foldery do eksportu:

 App.use (Express.Stic ("public"))
app.use (Express.stic ("pliki")) 

11. Zmodyfikuj przepływ zdarzenia

Wreszcie, pozwól nam wkrótce wspomnieć o terminie Middleware. W Express.js Parlenance, oprogramowanie pośrednie jest zestawem jednego lub więcej komponentów, które integrują się w schemat blokowy pokazany przeciwny. Mogą więc być używane do modyfikowania żądań, gdy przechodzą przez system routingu - po wdrożeniu prawidłowo, można osiągnąć nieograniczoną funkcjonalność.

Ponadto można znaleźć kilka gotowych komponentów tutaj - Odwiedź tę stronę przed rozpoczęciem projektu rozwoju na dużą skalę.

12. Jak hostować aplikację Express.js

Get started with Express.JS: How to host an Express.JS app

Rozważ platformy, w których możesz gościć nowego tworzenia

Testowanie aplikacji opartych na Express.js są łatwe. Problemy pojawiają się po tym, jak chcesz, aby strona była dostępna dla osób trzecich - ze względu na to, że jest generowany przez środowisko węzła.js.

Teoretycznie nie ma nic przeciwko użyciu Raspberry PI, pomarańczowego, serwera dedykowanego lub maszyny wirtualnej wynajęte z usługi w chmurze lub dostawcy hosta internetowego, który oferuje wirtualne hosting. Jednak wynajęcie pełnej wirtualnej maszyny może obciążać Cię z obowiązkami utrzymania środowiska wykonawczego i aktualnego systemu operacyjnego.

Jeśli to zadanie nie jest do twojego gustu, dostawca usług As-a-usługodawca może być bardziej atrakcyjny (choć, w większości przypadków, bardzo drogie) wybór.

Wielu deweloperów uważa Heroku, a wycena pokazana na rysunku towarzyszącym tym boxout, aby być złotym standardem dla wszystkich rzeczy związanych z Hostingiem Node.js.

Jest to jednak nieco niesprawiedliwe w prawdzie - Elastyczna Beanstalk Amazon, platforma w chmurze Google i Microsoft Azure, wszystkie zapewniają podobne wsparcie dla zdalnego wykonania ładunku węzłów. We wszystkich tych systemach głównym problemem jest obsługa - podczas gdy Azure jest znany z powolnych wdrożeń, innych deweloperów ciężarowych dostawców z trudnych do użycia usług zapasowych niezwykle złożonych systemów konfiguracji.

Ponadto wspierana wersja środowiska węzła.jsa różni się od dostawcy dostawcy. Oczywiście, nie mamy wystarczającej ilości miejsca, aby pokryć głębokość tematu. Odwiedzić Samouczek wdrożenia Mozilli i Express.js ' wydajność i niezawodność i bezpieczeństwo Najlepsze praktyki strony dla niektórych problemów związanych z problemami. Upewnij się, aby spojrzeć na dokumentację dostawcy, aby zdobyć najlepsze praktyki.

13. Odporność na przyszłość

Get started with Express.JS: Future-proof your applications

Należy odnotować gospodarz nowych dodatków

Cykl rozwoju Express.js jest daleki od gładkiego: deweloperzy są dobrze znani z częstego zmian API wymagających przepisywania kodu klienta. Przełącznik od 3.x do 4.x był szczególnie bolesny, dlatego, dlaczego zbliżająca się uwolnienie 5.x może pozostawić czując się nieswojo czując się nieswojo.

Podczas gdy Express.js 5.0 przynosi kilka zmian, ich wpływ jest bardziej ograniczony. Przede wszystkim zestaw ich już przestarzałych funkcji jest usuwany dla Real - jeśli kod nadal ich używa, aktualizacja do 5.x wymaga konserwacji.

Projektanci silników widoku muszą sprawdzić "RES.RENDER ():" Ranga wzrostu w odniesieniu do przeglądania renobierek, które doprowadziły do ​​niektórych synchronicznych implementacji przesuwających się. Wersja 5 ramy zwiększa wydajność poprzez egzekwowanie renderowania asynchronicznego.

Oprócz tego, zestaw udokumentowanych ulepszeń i zmian tutaj widzi powrót niektórych wymarłych cech z poprzednich wersji - ponadto, niektóre długie błędy zostaną ustalone w nowej wersji.

Wreszcie bądź świadomy, że możesz już spróbować nowej wersji. Wystarczy utworzyć kopię kodu źródłowego, chwyć terminal i wprowadź następującą komendę, aby pobrać wartość archiwum ledwo przetestowanej krawędzi bleedingowej JavaScript. Bądź bezpieczny.

 $ NPM Zainstaluj Express @ & GT; = 5.0.0-
Alpha.1 - Have 

Niniejszy artykuł został pierwotnie opublikowany w wydaniu 279 kreatywnego projektanta Web Magazine Web Magazine. Kup problem 279 tutaj lub Subskrybuj tutaj projektant stron internetowych .

Powiązane artykuły:

  • Wszystko, co musisz wiedzieć o nowym węzła.js 8
  • 20 modułów node.js musisz wiedzieć
  • 25 Zmiana gry Narzędzia JavaScript

Jak - Najpopularniejsze artykuły

Zacznij od Grav CMS

Jak Jan 25, 2026

(Kredyt obrazu: przyszłość) Grava jest systemem zarządzania treścią (CMS) z różnicą. Systemy zarządzania tr..


Zacznij od platformy animacji Greensock

Jak Jan 25, 2026

Platforma animacji Greensock (GSAP) umożliwia animowanie wszystkiego, do czego można uzyskać dostęp do JavaScript, w tym DOM,..


Zrób animacje pojazdu z ICLONONE 7

Jak Jan 25, 2026

Tworzenie animacji lub. 3d filmy. Angeling pojazdów z kołami mogą przedstawić pewne komplikacje, ponieważ ruc..


Jak skorygować wadliwą kompozycję

Jak Jan 25, 2026

Stworzyłem oryginalny obraz w ostatnim roku w ubiegłym roku, inspirowany przez rozległe krajobrazy fantasy artystów, takich jak Dongbiao Lu i Ruxing Gao. To była moja pierwsza stylizowan..


Jak rysować pióra

Jak Jan 25, 2026

Jeśli zawsze chciałeś wiedzieć, jak narysować pióra i uczynić je super realistycznymi, jesteś we właściwym miejscu. Ten przewodnik krok po kroku oferuje wskazówki i wskazówki doty..


Zrozumienie właściwości wyświetlania CSS

Jak Jan 25, 2026

Jest o północy i ten div. Na twojej stronie nadal wygląda jak skrzynia zabawki dziecka. Wszystkie elementy są ..


Utwórz ubrania 3d z realistycznymi fałdami i fałdami

Jak Jan 25, 2026

Dokonywanie realistycznych wirtualnych ubrań jest jednym z najtrudniejszych zadań od czasu innowacji animacji CG. Odzież jest ..


Utwórz tekstury gotowe do gry za pomocą malarza substancji

Jak Jan 25, 2026

W ostatnim roku jest zmieniacz gier dla przemysłu gier wideo i dla amerykańskich artystów na tyle, aby zdobyć życie od tworz..


Kategorie