Konfiguracja i uruchamianie projektu LoopBack w ServBay
Czym jest LoopBack?
LoopBack to wysoce skalowalny, otwartoźródłowy framework Node.js opracowany przez IBM, zaprojektowany z myślą o szybkim budowaniu API i mikrousług. Oparty o podejście model-driven development (MDD), ułatwia definiowanie modeli danych oraz automatycznie generuje funkcjonalne RESTful API. Framework LoopBack oferuje bogaty zestaw funkcji, takich jak połączenia do źródeł danych, uwierzytelnianie i autoryzacja użytkowników, eksplorator API oraz wsparcie wielu baz danych oraz protokołów.
Najważniejsze cechy i zalety LoopBack
- Model-driven development (MDD): Intuicyjne definiowanie modeli danych; framework automatycznie generuje powiązane endpointy API i logikę walidacji danych.
- Wsparcie wielu źródeł danych: Prosta integracja z najpopularniejszymi bazami danych (np. MongoDB, MySQL, PostgreSQL, MariaDB) oraz usługami RESTful, SOAP itp.
- Potężne narzędzia CLI: LoopBack CLI (Command Line Interface) udostępnia bogaty zestaw komend, znacznie upraszczających takie zadania jak inicjalizacja projektu, definiowanie modeli czy konfigurowanie źródeł danych.
- Modularność i elastyczność: Architektura frameworka pozwala na integrację z bibliotekami zewnętrznymi i rozszerzenie go o własne komponenty — wszystko po to, by sprostać bardziej wyspecjalizowanym wymaganiom biznesowym.
- Wbudowane mechanizmy bezpieczeństwa: Gotowe do użycia funkcje uwierzytelniania i autoryzacji umożliwiają szybkie tworzenie bezpiecznych API.
Dzięki LoopBack programiści mogą znacznie przyspieszyć tworzenie backendów aplikacji webowych oraz API, tworząc wydajne i łatwe w utrzymaniu rozwiązania.
Zakładanie i uruchamianie projektu LoopBack z wykorzystaniem ServBay
W tym przewodniku opisujemy, jak utworzyć i uruchomić projekt LoopBack w środowisku Node.js dostarczonym przez ServBay. Skorzystamy z funkcji „Strona” ServBay i skonfigurujemy lokalny serwer WWW, który za pośrednictwem Reverse Proxy przekieruje ruch do portu aplikacji LoopBack — umożliwiając wygodne lokalne testy i debugowanie.
Tworzenie projektu LoopBack
Instalacja LoopBack CLI
Przed startem upewnij się, że zainstalowałeś oraz aktywowałeś Node.js w ServBay. Następnie otwórz terminal i zainstaluj globalnie CLI LoopBack za pomocą npm:
bashnpm install -g @loopback/cli
1Inicjalizacja projektu
Przejdź do domyślnego katalogu stron ServBay
/Applications/ServBay/www
i za pomocą CLI LoopBack utwórz nowy projekt. Zaleca się stosowanie małych liter i myślników w nazwie projektu, np.servbay-loopback-app
:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2Kreator CLI poprowadzi Cię przez konfigurację projektu — wybierzesz m.in. funkcjonalności (np. REST API, serializacja, uwierzytelnianie) i układ projektu. Dostosuj wybór do własnych potrzeb.
Instalacja zależności projektu
Wejdź do katalogu nowo utworzonego projektu i zainstaluj wymagane paczki Node.js:
bashcd servbay-loopback-app npm install
1
2
Modyfikacja treści zwracanej przez projekt LoopBack (opcjonalnie)
Dla przykładu, jak uzyskać dostęp do aplikacji przez ServBay, zmodyfikujemy domyślny endpoint /ping
, by zwracał niestandardową odpowiedź.
Edytuj plik
src/controllers/ping.controller.ts
Odszukaj plik
src/controllers/ping.controller.ts
w swoim projekcie i zamień jego zawartość na poniższą, aby endpoint/ping
zwracał napis "Hello ServBay!":typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { // Zmodyfikowano zwracaną treść na "Hello ServBay!" return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
11
Uruchamianie projektu w trybie deweloperskim
Podczas prac rozwojowych najczęściej uruchamiasz serwer developerski LoopBack, aby szybko testować i debugować aplikację. Skorzystamy z Reverse Proxy ServBay do obsługi dostępu lokalnego.
Uruchom serwer developerski
Rozpocznij działanie aplikacji LoopBack z katalogu głównego projektu, ustawiając przy tym port, np.
8585
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8585 npm start
1
2Po uruchomieniu pojawi się informacja, np. "Server is running at http://[::1]:8585".
Konfiguracja strony (Reverse Proxy) w ServBay
Otwórz panel zarządzania ServBay, przejdź do sekcji „Strony” i kliknij „Dodaj”, aby utworzyć nową stronę typu Reverse Proxy. Skonfiguruj ją tak, by kierowała ruch z wybranej domeny i portu na port Twojej aplikacji LoopBack:
- Nazwa: np.
My first LoopBack dev site
(identyfikacja w ServBay) - Domena: np.
servbay-loopback-dev.servbay.demo
(używana w przeglądarce) - Typ strony: wybierz
Reverse Proxy
- Adres IP: wpisz
127.0.0.1
(aplikacja LoopBack działa lokalnie) - Port: ustaw
8585
(port aplikacji LoopBack)
Zapisz ustawienia oraz zastosuj zmiany w ServBay. Program samodzielnie skonfiguruje lokalny DNS (poprzez edycję
/etc/hosts
lub wykorzystanie ServBay Helper Tool) oraz serwer WWW (Caddy lub Nginx), dzięki czemu będziesz mógł uzyskać dostęp przez wybraną domenę.Szczegółową instrukcję tworzenia Reverse Proxy w ServBay znajdziesz w dokumentacji: Dodawanie strony dla rozwoju Node.js.
- Nazwa: np.
Dostęp do aplikacji w trybie developerskim
Otwórz przeglądarkę i przejdź pod skonfigurowaną domenę wraz z endpointem aplikacji LoopBack, np.
https://servbay-loopback-dev.servbay.demo/ping
.ServBay domyślnie generuje i instaluje certyfikaty SSL dla stron lokalnych (za pomocą ServBay User CA lub ServBay Public CA), dzięki czemu możesz bezpiecznie korzystać z HTTPS także przy lokalnym rozwoju — to korzystnie symuluje środowisko produkcyjne i pozwala wcześnie wykryć potencjalne problemy SSL. Więcej informacji o SSL znajdziesz w: Wykorzystanie SSL do zabezpieczenia strony.
Wdrażanie wersji produkcyjnej (opcjonalnie)
Gdy Twój projekt LoopBack jest gotowy do wdrożenia, możesz uruchomić go w trybie produkcyjnym — gwarantuje to lepszą wydajność i mniej zbędnych komunikatów debugowania.
Uruchamianie serwera produkcyjnego
Z katalogu głównego projektu uruchom serwer LoopBack w trybie produkcyjnym, np. na porcie
8586
, ustawiając zmiennąNODE_ENV=production
:bashcd /Applications/ServBay/www/servbay-loopback-app PORT=8586 NODE_ENV=production npm start
1
2Konfiguracja strony (Reverse Proxy) w ServBay
Wróć do panelu ServBay i utwórz nową (lub zmodyfikuj istniejącą) stronę Reverse Proxy, wskazującą na port, na którym działa aplikacja produkcyjna:
- Nazwa: np.
My first LoopBack production site
- Domena: np.
servbay-loopback-prod.servbay.demo
- Typ strony: wybierz
Reverse Proxy
- Adres IP: wpisz
127.0.0.1
- Port: ustaw
8586
(port aplikacji w trybie produkcyjnym)
Zapisz i zastosuj zmiany.
- Nazwa: np.
Dostęp do wersji produkcyjnej aplikacji
W przeglądarce wpisz domenę skonfigurowaną dla produkcji, np.
https://servbay-loopback-prod.servbay.demo/ping
, aby sprawdzić działanie aplikacji w tym trybie. ServBay także tutaj zapewnia obsługę HTTPS.
Konfiguracja połączenia z bazą danych
LoopBack korzysta z konektorów do wielu baz danych. ServBay udostępnia gotowe paczki dla MySQL, MariaDB, PostgreSQL, MongoDB i Redis — możesz łatwo uruchomić dowolną z tych baz z poziomu ServBay i skonfigurować połączenia w swoim projekcie LoopBack.
Poniżej przykładowe konfiguracje dla najczęściej wykorzystywanych baz. Dostosuj je do swoich potrzeb.
Ważne: Nazwy użytkowników i hasła w poniższych przykładach są symboliczne. Zawsze korzystaj z tych danych (np. root lub inny użytkownik), które ustawiłeś i zarządzasz nimi w panelu ServBay.
Połączenie z MongoDB
Upewnij się, że masz zainstalowaną i uruchomioną paczkę MongoDB w ServBay. Zainstaluj konektor MongoDB dla LoopBack:
bashnpm install --save @loopback/connector-mongodb
1Skonfiguruj źródło danych w projekcie, np. w pliku
src/datasources/mongodb.datasource.ts
:typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', // Domyślnie MongoDB ServBay działa na localhost:27017 url: 'mongodb://localhost:27017/servbay-loopback-app', // Zmień na odpowiednią nazwę bazy host: 'localhost', port: 27017, user: '', // Jeśli jest skonfigurowane uwierzytelnianie, wpisz nazwę użytkownika password: '', // Jeśli jest skonfigurowane uwierzytelnianie, wpisz hasło database: 'servbay-loopback-app', // Zmień na odpowiednią nazwę bazy // Pozostałe opcjonalne ustawienia... }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22Połączenie z Redis
Upewnij się, że paczka Redis w ServBay jest już zainstalowana i uruchomiona. Zainstaluj konektor Redis dla LoopBack (Uwaga: brak oficjalnego
@loopback/connector-redis
, najczęściej używany jestloopback-connector-redis
lub bezpośrednio bibliotekaredis
wraz z integracją LoopBack):bashnpm install --save loopback-connector-redis # lub inną kompatybilną bibliotekę Redis
1Skonfiguruj źródło danych (przykład dla stylu
loopback-connector-redis
):typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', // Domyślnie Redis ServBay działa na localhost:6379 url: 'redis://localhost:6379', // Pozostałe opcjonalne ustawienia... }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17Uwaga: LoopBack 4 korzysta z innego podejścia do konfiguracji konektorów niż LoopBack 3. Powyższy przykład pokazuje uproszczony styl zgodny z LoopBack 3, jednak w LoopBack 4 zalecane jest korzystanie z dekoratorów
@datasource
oraz nowocześniejszych metod konfiguracji. Szczegóły znajdziesz w oficjalnej dokumentacji LoopBack 4. Parametry takie jakhost
,port
,user
,password
,database
są jednak uniwersalne.Połączenie z MariaDB (lub MySQL)
Upewnij się, że paczka MariaDB lub MySQL jest zainstalowana i uruchomiona w ServBay. Oba silniki są obsługiwane; konektory MySQL dla LoopBack zwykle pracują też z MariaDB. Zainstaluj konektor MySQL:
bashnpm install --save @loopback/connector-mysql
1Skonfiguruj źródło danych:
typescript// src/datasources/mariadb.datasource.ts lub mysql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', // lub 'mysql' connector: 'mysql', // użyj konektora mysql // url: '', // Możesz podać url lub osobno host, port, database host: 'localhost', // domyślnie baza działa na localhost port: 3306, // Domyślny port MariaDB/MySQL user: 'root', // Domyślny użytkownik to root password: 'password', // << Zamień na swoje hasło do bazy z ServBay >> database: 'servbay_loopback_app', // Zamień na nazwę swojej bazy // Pozostałe opcjonalne ustawienia... }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; // lub 'mysql' constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Uwaga: Wartość
password: 'password'
to tylko przykład – skorzystaj z faktycznego hasła, dostępnego lub konfigurowalnego w panelu ServBay.Połączenie z PostgreSQL
Upewnij się, że pakiet PostgreSQL jest zainstalowany oraz uruchomiony. Zainstaluj konektor PostgreSQL:
bashnpm install --save @loopback/connector-postgresql
1Skonfiguruj źródło danych:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', // url: '', // Możesz podać url lub osobno dane: host, port, database host: 'localhost', // domyślne ustawienie w ServBay port: 5432, // domyślny port PostgreSQL user: 'user', // << Zmień na swojego użytkownika z panelu ServBay >> password: 'password', // << Zmień na faktyczne hasło >> database: 'servbay_loopback_app', // Zamień na nazwę swojej bazy // Pozostałe opcjonalne ustawienia... }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Uwaga:
user: 'user'
ipassword: 'password'
są tylko symboliczne. Przepisz je, korzystając z faktycznych danych użytkownika i hasła wybranych/utworzonych w panelu ServBay.
Podsumowanie
Przechodząc przez powyższe kroki, nauczyłeś się tworzyć, konfigurować i uruchamiać projekt LoopBack Node.js w lokalnym środowisku ServBay. Wiesz już jak wykorzystać funkcję „Strona” i mechanizm Reverse Proxy, by wygodnie korzystać z aplikacji i jak konfigurujesz LoopBack, by łączył się z różnymi bazami danych dostępnych w ServBay.
ServBay dostarcza dla LoopBack (i innych frameworków Node.js) stabilne oraz wygodne lokalne środowisko pracy, integrując serwer WWW, bazy danych oraz wybrane środowiska uruchomieniowe języków. Dzięki zarządzaniu stronami, wsparciu SSL i integracji z bazami danych, lokalny rozwój i testowanie staje się nie tylko prostsze, ale i bezpieczniejsze.