2023-01-04 09:55 Czas czytania: 13 min

Wprowadzenie do ExpressJS [+6 Learning Resources]

ExpressJS to uproszczony i bardzo adaptowalny framework dla środowiska Node.js, stworzony z myślą o aplikacjach internetowych i mobilnych. Zapewnia on szeroki zakres funkcji niezbędnych do budowy tych aplikacji.

Ten framework sieciowy, dostępny na licencji open source, jest dziełem TJ Holowaychuka, a jego dalszym rozwojem zajmuje się Fundacja Node.js.

Dlaczego warto wybrać ExpressJS?

ExpressJS charakteryzuje się prostymi interfejsami API, które wspierają deweloperów w tworzeniu backendu, aplikacji internetowych oraz witryn. Pod tym względem, ten framework można porównać do Django w Pythonie oraz Ruby on Rails.

Jednakże, w przeciwieństwie do Django i Rails, które narzucają określony sposób budowania aplikacji i interfejsów API, ExpressJS oferuje dużą elastyczność i możliwość swobodnego wyboru podejścia. Nie ma tu jednego "słusznego" sposobu na realizację zadania, co pozwala na większą swobodę twórczą.

Reasumując, oto kluczowe powody, dla których warto rozważyć ExpressJS:

  • Ułatwia tworzenie aplikacji internetowych i interfejsów API.
  • Posiada solidne API, które upraszczają routing.
  • Jest asynchroniczny i jednowątkowy, co przekłada się na wydajność.

Funkcje ExpressJS

# 1. Element stosu MEAN

JavaScript jest nadal jednym z najbardziej popularnych języków programowania. Posiada frameworki do pracy zarówno po stronie klienta, jak i serwera, co umożliwia budowę aplikacji full-stack.

Część programistów używa stosu MEAN (MongoDB, Express, Node.js i AngularJS) do tworzenia kompletnych aplikacji. Inni preferują Reactjs, tworząc w ten sposób stos MERN (MongoDB, Express, Node.js i Reactjs). W obu tych podejściach Express.js stanowi niezmienną część składową.

#2. Elastyczność i szybkość

ExpressJS został zaprojektowany jako minimalistyczny framework, co eliminuje potrzebę nauki wielu skomplikowanych elementów. Szybkość działania zapewnia doskonały system routingu, negocjowanie treści "out-of-the-box" oraz wykorzystanie middleware.

#3. Skalowalność

Aplikacje zbudowane na ExpressJS cechują się łatwą skalowalnością, co jest powodem jego popularności wśród wielu organizacji. W przypadku dużych projektów, Express nie wymaga wielu dodatkowych konfiguracji. Duża ilość modułów, pakietów i dodatkowych zasobów, ułatwia tworzenie rozbudowanych aplikacji.

#4. Wykorzystanie middleware

ExpressJS oferuje szereg middleware, które przyspieszają i usprawniają proces tworzenia oprogramowania. Middleware umożliwia frameworkowi wykonanie określonej akcji przed lub po obsłużeniu żądania klienta. Ułatwia to kontrolę nad działaniami użytkowników, takimi jak logowanie, rejestracja, czy wylogowanie.

#5. Rozbudowany system routingu

System routingu ExpressJS pozwala programistom tworzyć zaawansowane interfejsy API, które obsługują praktycznie każde żądanie HTTP. Dzięki możliwości dzielenia kodu na mniejsze, łatwe do zarządzania pliki, unikamy problemów z rozbudowanym systemem routingu. Grupowanie tras w folderach ułatwia organizację i zarządzanie aplikacją.

Architektura ExpressJS

Źródło obrazu: turing.com

Aplikacja napisana w Express będzie składać się z następujących elementów:

  • Zależności. Sam ExpressJS jest zależnością. Kolejne można instalować za pomocą npm.
  • Middleware. W konfiguracji ExpressJS jest to funkcja określająca cykl życia żądania/odpowiedzi.
  • Instancje. Są to instrukcje służące do tworzenia obiektu.
  • Konfiguracje. Niestandardowe ustawienia aplikacji, definiowane po utworzeniu instancji lub w odrębnym pliku.
  • Trasy. Punkty końcowe wykorzystywane przez klientów do uzyskania dostępu do zasobów lub wykonania konkretnych akcji zdefiniowanych przez serwer.
  • Uruchomienie serwera. Funkcja app.listen() służy do uruchomienia serwera deweloperskiego.

Pierwsze kroki z ExpressJS

ExpressJS działa na Node.js, co oznacza, że należy go zainstalować na komputerze.

Do zarządzania zależnościami w środowisku programistycznym potrzebny jest również Node Package Manager (npm).

Node można pobrać ze strony internetowej, wybierając wersję odpowiednią dla danego systemu operacyjnego.

Po zakończeniu instalacji, można sprawdzić poprawne zainstalowanie node i npm, wpisując w terminalu następujące polecenia:

node --version
npm --version

Instalacja ExpressJS

Wykonaj następujące kroki:

  • Utwórz prostą aplikację ExpressJS, ręcznie lub za pomocą poniższych poleceń:
mkdir myapp
cd myapp
  • Utwórz plik package.json za pomocą tego polecenia:
npm init
  • Zaakceptuj monity, zmieniając punkt wejścia z index.js na app.js.
  • Zainstaluj ExpressJS za pomocą poniższego polecenia:
npm install express
  • Wyświetl komunikat "Hello World"

W głównym katalogu stwórz plik o nazwie app.js.

Dodaj do niego poniższy kod:

const express = require('express')

const app = express()

const port = 3000

app.get('/', (req, res) => {

  res.send('Hello World!')

})

app.listen(port, () => {

  console.log(`Example app listening on port ${port}`)

})

Uruchom serwer lokalny, wpisując w terminalu:

node app.js

Przejdź do adresu http://localhost:3000/ w przeglądarce, gdzie zobaczysz "Hello World!"

Generator aplikacji Express

Aplikacja stworzona powyżej jest bardzo uproszczona. Aby uniknąć ręcznego tworzenia aplikacji ExpressJS, można skorzystać z generatora Express.

  • Oto polecenie do wygenerowania aplikacji ExpressJS:
npx express-generator
  • Użytkownicy Node.js w wersji starszej niż 8.2.0, mogą zainstalować generator aplikacji i uruchomić go, używając tych poleceń:
npm install -g express-generator
express
express --view=pug myapp

Powyższe polecenie wygeneruje aplikację o nazwie "myapp".

  • Zainstaluj niezbędne zależności, używając poleceń:
cd myapp

npm install
  • Uruchom serwer deweloperski w zależności od posiadanego systemu operacyjnego:

W systemie Windows PowerShell:

PS> $env:DEBUG='myapp:*'; npm start

W wierszu poleceń systemu Windows:

> set DEBUG=myapp:* & npm start

W systemie macOS lub Linux:

DEBUG=myapp:* npm start

Otwórz http://localhost:3000/ w przeglądarce, gdzie powinieneś zobaczyć domyślną stronę startową aplikacji Express.

# 1. Aplikacje fintech

Instytucje finansowe i banki coraz częściej korzystają z technologii cyfrowych, co zwiększa zapotrzebowanie na aplikacje fintech. Służą one do wspierania usług finansowych i bankowych. ExpressJS jest chętnie wykorzystywany w budowie skalowalnych aplikacji finansowych.

#2. Aplikacje typu SPA (Single Page Application)

Aplikacje SPA, które działają jako pojedyncza strona, stanowią popularny trend we współczesnym tworzeniu aplikacji. Duże aplikacje internetowe i mobilne takie jak Airbnb, Netflix, Pinterest, Paypal, Gmail i Mapy Google, to doskonałe przykłady SPA. ExpressJS świetnie sprawdza się w budowie takich aplikacji, dzięki elastycznemu systemowi routingu.

#3. Aplikacje strumieniowe

Aplikacje takie jak Spotify i Netflix z pozoru wydają się proste, jednak są one bardzo złożone i operują na wielu warstwach danych. ExpressJS to dobry wybór do tworzenia tego typu rozwiązań, ponieważ efektywnie radzi sobie z asynchronicznymi strumieniami danych.

#4. Narzędzia do współpracy w czasie rzeczywistym

Nowoczesne środowiska pracy opierają się na współpracy zespołowej. ExpressJS posiada funkcje ułatwiające tworzenie narzędzi do współpracy. Framework ten sprawdza się przy budowie pulpitów nawigacyjnych i czatów, dzięki łatwej integracji z WebSocket.

Zalety ExpressJS

  • Darmowy i open source. Nie ma kosztów związanych z wykorzystaniem frameworka. Istnieje też możliwość modyfikowania istniejącego kodu.
  • Łatwość użycia. Kod w ExpressJS można pisać bez przechodzenia przez skomplikowane procesy. Framework posiada wiele funkcji, które upraszczają proces tworzenia oprogramowania.
  • Szybki rozwój. ExpressJS posiada wiele szablonów, które pozwalają uniknąć tworzenia aplikacji od zera.
  • Wysoka wydajność. Aplikacje stworzone w ExpressJS działają bardzo dobrze, co pozwala na używanie go zarówno w małych projektach, jak i w dużych aplikacjach korporacyjnych.

Wady ExpressJS

  • Nie zawsze pomocne komunikaty o błędach. W przeciwieństwie do innych platform, błąd 404 w ExpressJS nie musi oznaczać faktycznego problemu.
  • Brak narzuconej struktury kodu, co dla niektórych może być wadą.

Zasoby do nauki ExpressJS

# 1. Node.js, Express, MongoDB i inne

Kurs idealny dla osób, które chcą opanować cały backend z jednego źródła. Po jego ukończeniu, można tworzyć szybkie i skalowalne API RESTful z wykorzystaniem ExpressJS i pokrewnych technologii.

#2. Tylko Express

Kurs dla osób, które chcą poznać tajniki budowy serwera API REST w Express. Uczy podstaw protokołu HTTP i wyjaśnia cykl życia żądania/odpowiedzi.

#3. React, NodeJS, Express i MongoDB

Kompletny kurs MERN dla osób chcących nauczyć się tworzyć aplikacje JavaScript full-stack. Obejmuje łączenie ReactJS z NodeJS, Express i MongoDB, a także implementację uwierzytelniania i autoryzacji.

#4. Express in Action: Pisanie, budowanie i testowanie aplikacji Node.js

"Express in Action" to książka, która krok po kroku prowadzi przez proces tworzenia aplikacji internetowych przy użyciu Node i ExpressJS. Obejmuje konfigurację aplikacji, przechowywanie danych w MongoDB oraz testowanie aplikacji.

#5. Express.js: Przewodnik po frameworku internetowym dla Node.js

Książka "Express.js: Guide Book on Framework Web for Node.js" dogłębnie omawia framework ExpressJS, prezentując różne modele udostępniane przez ten framework.

#6. Oficjalna dokumentacja ExpressJS

ExpressJS posiada bogatą dokumentację, która stanowi doskonałe źródło wiedzy zarówno dla początkujących, jak i doświadczonych programistów.

PODSUMOWANIE

ExpressJS jest jednym z najpopularniejszych frameworków internetowych dla Node.js. Zyskał swoją pozycję dzięki szerokiemu spektrum zaawansowanych funkcji oraz łatwej krzywej uczenia. Stanowi podstawę dla Node.js, co ułatwia zrozumienie innych powiązanych frameworków.

Marta Wysocka
Autor
Polska

Przygotowuje podsumowania oparte na researchu, pomagające czytelnikom w decyzjach.

Poprzedni artykuł
Jak zrobić infografikę: samouczek krok po kroku
Następny artykuł
Co to jest ocena zdrowia klienta i jest ważna dla Twojej firmy