Menu
CoddyTech

Configurazione

Fa parte della sezione API REST del percorso Node.js di Coddy. Lezione 23 di 25.

Sul tuo laptop il server è in ascolto sulla porta 3000. Un servizio di hosting lo avvia con node server.js e sceglie autonomamente la porta, passandola nell'ambiente come PORT. L'host chiama anche di tanto in tanto una route come GET /health e riavvia il server quando smette di rispondere.

// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';

Ogni valore in process.env è una stringa e '5' + 1 è '51', quindi converti i numeri con Number. Leggi le impostazioni in un unico file, config.js, e importale ovunque, così nessun altro elemento accede a process.env.

challenge icon

Sfida

Facile

Su un servizio di hosting, l’host sceglie la porta e passa le impostazioni al tuo server nell’ambiente. Leggi le tue impostazioni dall’ambiente in un unico posto e aggiungi una route che l’host possa chiamare per verificare che il server sia attivo.

  1. In config.js, leggi port dalla variabile d’ambiente PORT e pageSize da PAGE_SIZE. Entrambe arrivano come testo, quindi convertili in numeri. Se una variabile manca, mantieni i valori attuali: 3000 e 10.
  2. In server.js, importa config. Avvia il server su config.port e stampa la porta che usa. Con PORT=8080, la Console mostra esattamente:
    Task tracker API on port 8080
  3. In routes/tasks.js, importa anche config. Nella route dell’elenco, una richiesta senza ?limit= usa config.pageSize invece di 10. Se la richiesta contiene ?limit=, questo ha comunque la precedenza.
  4. In server.js, aggiungi GET /health, al di fuori del router delle attività. Restituisce lo stato 200 e esattamente:
    { "status": "ok" }

Questa lezione viene eseguita con PORT=8080 e PAGE_SIZE=2.

Prova: premi «Gioca» e la Console stampa Task tracker API on port 8080. GET /api/v1/tasks restituisce 2 attività con "total": 3 e "pages": 2. GET /api/v1/tasks?limit=3 restituisce tutte e 3 le attività. GET /health restituisce { "status": "ok" }.

Provalo tu

// Le impostazioni che cambiano tra il tuo portatile e un server.
// Leggi ciascuna impostazione da process.env, mantenendo questi valori come predefiniti.
export const config = {
    port: 3000,
    pageSize: 10,
};
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di API REST

Esercitati da solo: Playground Express