Konfiguracja
Część sekcji API REST ścieżki Node.js w Coddy. Lekcja 23 z 25.
Na twoim laptopie serwer nasłuchuje na porcie 3000. Usługa hostingowa uruchamia go za pomocą node server.js i sama wybiera port, przekazując go w środowisku jako PORT. Usługa hostingowa co jakiś czas wywołuje też trasę taką jak GET /health i ponownie uruchamia serwer, gdy przestaje on odpowiadać.
// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';Każda wartość w process.env jest ciągiem znaków, a '5' + 1 daje '51', więc konwertuj liczby za pomocą Number. Odczytuj ustawienia w jednym pliku, config.js, i importuj je we wszystkich pozostałych miejscach, aby nic innego nie korzystało z process.env.
Wyzwanie
ŁatwyW usłudze hostingowej host wybiera port i przekazuje ustawienia serwerowi w zmiennych środowiskowych. Odczytuj ustawienia ze zmiennych środowiskowych w jednym miejscu i dodaj trasę, którą host może wywołać, aby sprawdzić, czy serwer działa.
- W
config.jsodczytajportze zmiennej środowiskowejPORT, apageSizeze zmiennejPAGE_SIZE. Obie wartości są przekazywane jako tekst, więc zamień je na liczby. Jeśli którejś zmiennej brakuje, zachowaj obecne wartości: 3000 i 10. - W
server.jszaimportujconfig. Uruchom serwer na porcieconfig.porti wypisz numer używanego portu. PrzyPORT=8080konsola wyświetla dokładnie:Task tracker API on port 8080 - W
routes/tasks.jsrównież zaimportujconfig. W trasie listy żądanie bez?limit=używaconfig.pageSizezamiast 10. Wartość?limit=podana w żądaniu nadal ma pierwszeństwo. - W
server.jsdodajGET /healthpoza routerem zadań. Zwraca status 200 i dokładnie:{ "status": "ok" }
Ta lekcja działa z ustawieniami PORT=8080 i PAGE_SIZE=2.
Wypróbuj: naciśnij „Uruchom”, a konsola wyświetli Task tracker API on port 8080. GET /api/v1/tasks zwraca 2 zadania z "total": 3 i "pages": 2. GET /api/v1/tasks?limit=3 zwraca wszystkie 3. GET /health zwraca { "status": "ok" }.
Spróbuj swoich sił
// Ustawienia, które różnią się między Twoim laptopem a serwerem.
// Odczytaj każde z nich z process.env, zachowując te wartości jako domyślne.
export const config = {
port: 3000,
pageSize: 10,
};
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji API REST
1Zasoby i czasowniki
Zasoby i URL-eTworzenie za pomocą POST4Przeglądarki, wersje i konfiguracja
Czym jest originZezwalanie na dostęp z innego originCORSStrona wywołująca APIPoćwicz samodzielnie: Edytor online Express