Tworzenie i uruchamianie projektu Express.js z użyciem ServBay
Czym jest Express.js?
Express.js to szybki, otwarty i minimalistyczny framework do budowy aplikacji webowych oparty na Node.js. Oferuje bogaty zestaw funkcji ułatwiających tworzenie aplikacji jednostronicowych, wielostronicowych i hybrydowych. Express.js to jeden z najpopularniejszych frameworków w ekosystemie Node.js, ceniony przez deweloperów za prostotę i elastyczność.
Najważniejsze cechy i zalety Express.js
- Prostota i elastyczność: Express.js udostępnia przystępne API oraz elastyczny system middleware, umożliwiając efektywną budowę aplikacji webowych.
- Middleware: Obsługuje różnorodne middleware – łatwo przetwarzaj żądania i odpowiedzi, analizuj dane wejściowe, obsługuj sesje, udostępniaj statyczne pliki itd.
- Routing: Zaawansowane możliwości routingu, obsługa różnych metod HTTP (GET, POST, PUT, DELETE itd.) oraz ścieżek URL.
- Bogata integracja: Łatwa integracja z wieloma silnikami szablonów (np. Pug, EJS, Handlebars), bazami danych (np. MongoDB, MySQL, PostgreSQL) i innymi modułami Node.js.
- Społeczność i ekosystem: Rozbudowana społeczność oraz bogactwo wtyczek i middleware – szybka dostępność rozwiązań i materiałów pomocniczych.
Express.js to narzędzie, które pozwala szybko budować wydajne aplikacje webowe i API. ServBay — potężne lokalne środowisko programistyczne — zapewnia wygodne środowisko Node.js oraz solidne funkcje zarządzania stronami (odwrotne proxy) i bazami danych do uruchamiania projektów Express.js.
Tworzenie i uruchamianie projektu Express.js w ServBay
Poniżej znajdziesz instrukcję, jak utworzyć, skonfigurować i uruchomić projekt Express.js korzystając ze środowiska Node.js dostarczanego przez ServBay. Wykorzystamy funkcję Strona internetowa ServBay do konfiguracji serwera webowego i dostępu do projektu przez odwrotne proxy. Metoda ta idealnie nadaje się do aplikacji Node.js, Python, Go, Java itp., które działają na określonym porcie.
Wymagania wstępne
Przed rozpoczęciem prac upewnij się, że spełniasz następujące warunki:
- ServBay jest poprawnie zainstalowany na macOS.
- W ServBay masz zainstalowany i aktywowany pakiet Node.js. Zarządzaj nim przez zakładkę „Pakiety” w panelu ServBay.
- (Opcjonalnie) Jeśli planujesz korzystać z bazy danych, zainstaluj i aktywuj odpowiedni pakiet bazy danych w ServBay (np. MariaDB, PostgreSQL, MongoDB, Redis, MySQL).
- Posiadasz podstawowe umiejętności pracy z terminalem.
Tworzenie projektu Express.js
Inicjalizacja projektu
Otwórz terminal i przejdź do sugerowanego katalogu głównego stron ServBay:
/Applications/ServBay/www
. Następnie za pomocą polecenianpx express-generator
wygeneruj szkielet projektu Express.js.npx
to narzędzie dołączone do npm od wersji 5.2+, pozwalające uruchamiać pliki wykonywalne z paczek Node.js.bashcd /Applications/ServBay/www npx express-generator servbay-express-app
1
2To polecenie utworzy nowy folder o nazwie
servbay-express-app
w katalogu/Applications/ServBay/www
z podstawową strukturą projektu Express.js.Instalacja zależności
Przejdź do nowego katalogu projektu
servbay-express-app
i zainstaluj potrzebne pakiety przeznpm install
, w tym framework Express.js, silnik szablonów, obsługę plików statycznych itd.bashcd servbay-express-app npm install
1
2Poczekaj na zakończenie instalacji zależności.
Modyfikacja treści wyjściowej projektu Express.js
Aby upewnić się, że projekt został uruchomiony poprawnie, zmodyfikujemy wyjście na stronie głównej.
Edytuj plik
routes/index.js
Projekty Express.js używają plików routingu do obsługi różnych adresów URL. Otwórz plik
routes/index.js
w katalogu projektu. Plik ten obsługuje żądania GET na ścieżkę/
. Zmień kod tak, aby nie renderował domyślnego szablonu Pug, lecz zwracał prostą odpowiedź tekstową.javascriptvar express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { // Zmieniono na odpowiedź tekstową res.send('Hello ServBay!'); }); module.exports = router;
1
2
3
4
5
6
7
8
9
10Zapisz plik.
Praca w trybie deweloperskim
Podczas programowania uruchamia się lokalny serwer deweloperski, by na bieżąco widzieć efekty zmian. Projekt Express.js uruchamiasz komendą npm start
, co włącza wbudowany serwer HTTP.
Uruchom serwer deweloperski
W katalogu głównym projektu
servbay-express-app
uruchom poniższe polecenie by wystartować serwer deweloperski. Ustawiamy zmienną środowiskowąPORT
na wartość8585
orazDEBUG
, by włączyć tryb debugowania.bashcd /Applications/ServBay/www/servbay-express-app PORT=8585 DEBUG=servbay-express-app:* npm start
1
2W terminalu pojawią się informacje o uruchomieniu serwera, Express.js będzie nasłuchiwał na porcie
8585
.Konfiguracja odwrotnego proxy w ServBay
Ponieważ Express.js działa na niestandardowym porcie (
8585
), a nie na domyślnym porcie webowym (80/443), należy skonfigurować w ServBay funkcję Strona internetowa jako odwrotne proxy. Domyślny serwer www ServBay (Caddy) nasłuchuje na portach 80/443, a ruch na wybraną domenę przekierowuje na nasze Express.js działające na127.0.0.1:8585
.Otwórz panel ServBay, przejdź do zakładki „Strony”, kliknij dodaj nową stronę i skonfiguruj:
- Nazwa:
My first Express.js dev site
(dowolna nazwa ułatwiająca rozpoznawanie) - Domena:
servbay-express-test.servbay.demo
(dzięki domenie.servbay.demo
ServBay automatycznie wystawia certyfikat HTTPS) - Typ strony: wybierz
Odwrotne proxy
- IP:
127.0.0.1
(lublocalhost
) - Port:
8585
(port, na którym słucha Express.js)
Po wprowadzeniu ustawień pamiętaj o zapisaniu i zastosowaniu zmian w ServBay. ServBay sam skonfiguruje serwer oraz wygeneruje certyfikat SSL (dla domeny
.servbay.demo
).Szczegółowe kroki znajdziesz w dokumentacji ServBay w sekcji Dodawanie strony deweloperskiej Node.js.
- Nazwa:
Odwiedzanie strony w trybie deweloperskim
W przeglądarce otwórz adres
https://servbay-express-test.servbay.demo
. Serwer webowy ServBay odbierze żądania i przekaże je przez odwrotne proxy do Express.js działającego na porcie 8585. Powinieneś zobaczyć na stronie komunikat „Hello ServBay!”.Dzięki wsparciu ServBay dla własnych domen oraz darmowych certyfikatów SSL (w tym automatycznego https na
.servbay.demo
), możesz programować lokalnie z użyciem HTTPS — rozwiązanie bliskie produkcji, ułatwiające wykrywanie problemów.
Wdrażanie środowiska produkcyjnego
Po ukończeniu prac nad projektem Express.js możesz przygotować wdrożenie produkcyjne. Testowanie symulowanego środowiska produkcyjnego lokalnie ułatwia finalne sprawdzenie działania.
Przygotuj środowisko produkcyjne
Dla aplikacji Express.js w środowisku produkcyjnym ustaw zmienną środowiskową
NODE_ENV
naproduction
. Zmiana ta może wpływać na zachowanie części bibliotek – np. wyłącza debugowanie, włącza optymalizacje. Upewnij się, że kod prawidłowo reaguje naNODE_ENV=production
.Uruchom serwer produkcyjny
W folderze głównym projektu uruchom serwer na innym porcie (np.
8586
), aby odróżnić środowisko developerskie od produkcyjnego, i ustawNODE_ENV
naproduction
.bashcd /Applications/ServBay/www/servbay-express-app PORT=8586 NODE_ENV=production npm start
1
2W terminalu zobaczysz informacje o starcie serwera, tym razem nasłuchującego na porcie
8586
.Konfiguracja odwrotnego proxy ServBay (produkcja)
Analogicznie do środowiska developerskiego, skonfiguruj kolejną stronę w ServBay jako odwrotne proxy dla wersji produkcyjnej.
Otwórz panel ServBay, przejdź do zakładki „Strony”, dodaj nową stronę i ustaw:
- Nazwa:
My first Express.js production site
- Domena:
servbay-express-test-prod.servbay.demo
(lub inną, wg potrzeb symulacji produkcji) - Typ strony: wybierz
Odwrotne proxy
- IP:
127.0.0.1
- Port:
8586
(port wersji produkcyjnej)
Zapisz zmiany i zastosuj konfigurację.
- Nazwa:
Odwiedzanie strony w trybie produkcyjnym
W przeglądarce otwórz
https://servbay-express-test-prod.servbay.demo
. Dzięki odwrotnemu proxy ServBay trafisz na instancję Express.js działającą na porcie 8586. Pozwala to testować aplikację lokalnie w realiach produkcyjnych.
Łączenie z bazami danych
ServBay obsługuje szeroką gamę pakietów bazodanowych dla deweloperów: MariaDB, PostgreSQL, MongoDB, Redis. Po włączeniu odpowiedniej bazy Twój projekt Express.js może łatwo się z nią połączyć. ServBay zwykle ustawia domyślne dane logowania, np. dla MariaDB/MySQL użytkownik root i hasło password
, dla PostgreSQL użytkownik user
i hasło password
, domyślna baza servbay_default
. Stosuj się do wydanych komunikatów w panelu ServBay lub powyższych wartości domyślnych.
Poniżej znajdziesz przykłady podpięcia tych baz do projektu Express.js. Upewnij się, że zainstalowałeś odpowiedni sterownik przez npm install <package-name>
.
Połączenie z MongoDB
Najpierw zainstaluj paczkę Mongoose (popularny ORM):
bashnpm install mongoose
1Następnie w kodzie projektu (np. w
app.js
lub osobnym pliku konfiguracyjnym) zaimportuj i połącz się:javascriptvar mongoose = require('mongoose'); // Połącz z lokalną instancją MongoDB, baza: servbay-express-app // MongoDB ServBay domyślnie pozwala na połączenie bez uwierzytelniania mongoose.connect('mongodb://localhost/servbay-express-app', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('MongoDB connection error:', err));
1
2
3
4
5
6
7
8
9
10Upewnij się, że pakiet MongoDB w ServBay jest uruchomiony.
Połączenie z Redis
Najpierw zainstaluj klienta Redis:
bashnpm install redis
1Następnie zaimportuj i połącz się w kodzie projektu:
javascriptvar redis = require('redis'); // Redis ServBay działa domyślnie na localhost:6379, bez hasła var client = redis.createClient({ host: 'localhost', port: 6379 }); client.on('connect', function() { console.log('Connected to Redis'); }); client.on('error', function (err) { console.log('Redis Error: ' + err); }); // Przykład: ustawianie i pobieranie wartości // client.set('mykey', 'Hello from Express!', redis.print); // client.get('mykey', function(err, reply) { // if (err) throw err; // console.log(reply); // Zwraca "Hello from Express!" // }); // Używaj obiektu client do operacji na Redis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23Upewnij się, że Redis jest uruchomiony w ServBay.
Połączenie z MariaDB / MySQL
ServBay obsługuje zarówno MariaDB, jak i MySQL. Podłączenie odbywa się przez paczki
mariadb
lubmysql2
— tu pokazujemy przykład zmariadb
, który działa również z MySQL.Najpierw zainstaluj
mariadb
lubmysql2
:bashnpm install mariadb # lub npm install mysql2
1Następnie połącz się używając domyślnych danych ServBay (root / password):
javascriptvar mariadb = require('mariadb'); // MariaDB/MySQL ServBay pracuje domyślnie na localhost:3306 var pool = mariadb.createPool({ host: 'localhost', port: 3306, // port domyślny user: 'root', // domyślny użytkownik ServBay password: 'password', // domyślne hasło ServBay database: 'servbay_express_app', // utwórz tę bazę przez narzędzie ServBay connectionLimit: 5 // rozmiar puli }); pool.getConnection() .then(conn => { console.log("Connected to MariaDB/MySQL"); // Użyj obiektu conn do zapytań // conn.query("SELECT 1").then(...).catch(...).finally(() => conn.release()); conn.release(); // Zakończ użycie połączenia }) .catch(err => { console.log("Not connected due to error: " + err); });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Przed połączeniem utwórz bazę
servbay_express_app
przez narzędzie do zarządzania bazą (np. phpMyAdmin, Adminer udostępnione przez ServBay). Upewnij się, że MariaDB lub MySQL są aktywne w ServBay.Połączenie z PostgreSQL
Najpierw zainstaluj paczkę PostgreSQL:
bashnpm install pg
1Następnie połącz się wykorzystując domyślne dane dostępu ServBay:
javascriptvar { Pool } = require('pg'); // PostgreSQL ServBay działa domyślnie na localhost:5432 var pool = new Pool({ user: 'user', // domyślny użytkownik ServBay host: 'localhost', database: 'servbay_default', // domyślna baza lub inna, jeśli utworzysz password: 'password', // domyślne hasło ServBay port: 5432, // port domyślny }); pool.connect((err, client, done) => { if (err) { console.error('PostgreSQL connection error:', err); return; } console.log('Connected to PostgreSQL'); // Użyj client do obsługi zapytań // client.query('SELECT NOW()', (err, res) => { ... done(); }); done(); // Zwolnij połączenie }); // Alternatywnie z async/await // try { // const client = await pool.connect(); // console.log('Connected to PostgreSQL'); // // const res = await client.query('SELECT NOW()'); // // console.log(res.rows[0]); // client.release(); // Zwolnij połączenie // } catch (err) { // console.error('PostgreSQL connection error:', err); // }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31Upewnij się, że pakiet PostgreSQL w ServBay jest aktywny.
Podsumowanie
Po wykonaniu powyższych kroków udało Ci się utworzyć, skonfigurować i uruchomić projekt Express.js w ServBay. Nauczyłeś się:
- Jak zainicjować projekt przy pomocy
express-generator
. - Jak uruchomić aplikację Express.js na wybranym porcie.
- Jak skonfigurować odwrotne proxy przez funkcję Strona internetowa ServBay, by uzyskać dostęp do Node.js przez standardowe porty HTTP/S.
- Jak łączyć się z popularnymi bazami danych w środowisku ServBay.
ServBay znacznie upraszcza konfigurację oraz zarządzanie lokalnym środowiskiem Node.js (Express.js), pozwalając Ci skoncentrować się na pisaniu kodu. Dodatkowe funkcje, takie jak automatyczne certyfikaty SSL, backup strony czy podgląd logów, jeszcze bardziej usprawniają workflow lokalnego developmentu.