Konfiguration
Teil des Abschnitts REST-APIs der Node.js-Journey von Coddy. Lektion 23 von 25.
Auf deinem Laptop lauscht der Server auf Port 3000. Ein Hostingdienst startet ihn mit node server.js und wählt den Port selbst aus, indem er ihn in der Umgebung als PORT übergibt. Der Host ruft außerdem hin und wieder eine Route wie GET /health auf und startet den Server neu, wenn dieser nicht mehr reagiert.
// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';Jeder Wert in process.env ist eine Zeichenkette, und '5' + 1 ergibt '51', also wandle Zahlen mit Number um. Lies die Einstellungen in einer Datei, config.js, ein und importiere sie überall sonst, damit nichts anderes process.env verwendet.
Aufgabe
EinfachBei einem Hosting-Dienst wählt der Host den Port aus und übergibt deinem Server die Einstellungen über die Umgebung. Lies deine Einstellungen an einer zentralen Stelle aus der Umgebung und füge eine Route hinzu, die der Host aufrufen kann, um zu prüfen, ob der Server läuft.
- Lies in
config.jsportaus der UmgebungsvariablePORTundpageSizeausPAGE_SIZE. Beide werden als Text übergeben, wandle sie also in Zahlen um. Wenn eine Variable fehlt, behalte die heutigen Werte bei: 3000 und 10. - Importiere in
server.jsconfig. Starte den Server aufconfig.portund gib den verwendeten Port aus. BeiPORT=8080zeigt die Konsole genau Folgendes an:Task tracker API on port 8080 - Importiere in
routes/tasks.jsebenfallsconfig. In der Listenroute wird bei einer Anfrage ohne?limit=statt 10config.pageSizeverwendet. Ein?limit=in der Anfrage hat weiterhin Vorrang. - Füge in
server.jsaußerhalb des Aufgaben-RoutersGET /healthhinzu. Die Route gibt Status 200 und genau Folgendes zurück:{ "status": "ok" }
Diese Lektion läuft mit PORT=8080 und PAGE_SIZE=2.
Probier es aus: Drücke auf „Spielen“, und die Konsole gibt Task tracker API on port 8080 aus. GET /api/v1/tasks gibt 2 Aufgaben mit "total": 3 und "pages": 2 zurück. GET /api/v1/tasks?limit=3 gibt alle 3 zurück. GET /health gibt { "status": "ok" } zurück.
Probier es selbst
// Die Einstellungen, die sich zwischen deinem Laptop und einem Server unterscheiden.
// Lies jede Einstellung aus process.env und behalte diese Werte als Standardwerte bei.
export const config = {
port: 3000,
pageSize: 10,
};
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in REST-APIs
1Ressourcen und Verben
Ressourcen und URLsErstellen mit POST4Browser, Versionen und Konfiguration
Was ist ein Origin?Einen anderen Origin zulassenCORSEine Seite, die die API aufruftÜbe selbstständig: Express-Playground