Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

W 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.

  1. W config.js odczytaj port ze zmiennej środowiskowej PORT, a pageSize ze zmiennej PAGE_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.
  2. W server.js zaimportuj config. Uruchom serwer na porcie config.port i wypisz numer używanego portu. Przy PORT=8080 konsola wyświetla dokładnie:
    Task tracker API on port 8080
  3. W routes/tasks.js również zaimportuj config. W trasie listy żądanie bez ?limit= używa config.pageSize zamiast 10. Wartość ?limit= podana w żądaniu nadal ma pierwszeństwo.
  4. W server.js dodaj GET /health poza 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,
};
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji API REST

Poćwicz samodzielnie: Edytor online Express