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.
Sfida
FacileSu 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.
- In
config.js, leggiportdalla variabile d’ambientePORTepageSizedaPAGE_SIZE. Entrambe arrivano come testo, quindi convertili in numeri. Se una variabile manca, mantieni i valori attuali: 3000 e 10. - In
server.js, importaconfig. Avvia il server suconfig.porte stampa la porta che usa. ConPORT=8080, la Console mostra esattamente:Task tracker API on port 8080 - In
routes/tasks.js, importa ancheconfig. Nella route dell’elenco, una richiesta senza?limit=usaconfig.pageSizeinvece di 10. Se la richiesta contiene?limit=, questo ha comunque la precedenza. - In
server.js, aggiungiGET /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,
};
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di API REST
1Risorse e verbi
Risorse e URLCreare con POST4Browser, versioni e configurazione
Che cos'è un'origineConsentire un'altra origineCORSUna pagina che chiama l'APIEsercitati da solo: Playground Express