Configuration
Fait partie de la section API REST du Journey Node.js de Coddy. Leçon 23 sur 25.
Sur ton ordinateur portable, le serveur écoute sur le port 3000. Un service d’hébergement le démarre avec node server.js et choisit lui-même le port, en le transmettant dans l’environnement sous le nom PORT. L’hébergeur appelle aussi de temps en temps une route telle que GET /health, et redémarre le serveur lorsqu’il ne répond plus.
// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';Chaque valeur dans process.env est une chaîne de caractères, et '5' + 1 donne '51' ; il faut donc convertir les nombres avec Number. Lis les paramètres dans un seul fichier, config.js, et importe-les partout ailleurs, afin que rien d’autre ne touche à process.env.
Défi
FacileSur un service d’hébergement, l’hébergeur choisit le port et transmet des paramètres à votre serveur dans l’environnement. Lisez vos paramètres depuis l’environnement à un seul endroit, puis ajoutez une route que l’hébergeur peut appeler pour vérifier que le serveur est opérationnel.
- Dans
config.js, lisezportdepuis la variable d’environnementPORTetpageSizedepuisPAGE_SIZE. Les deux sont transmises sous forme de texte, convertissez-les donc en nombres. Si une variable est absente, conservez les valeurs actuelles : 3000 et 10. - Dans
server.js, importezconfig. Démarrez le serveur surconfig.portet affichez le port utilisé. AvecPORT=8080, la console affiche exactement :Task tracker API on port 8080 - Dans
routes/tasks.js, importez égalementconfig. Dans la route de liste, une requête sans?limit=utiliseconfig.pageSizeau lieu de 10. Un?limit=dans la requête reste prioritaire. - Dans
server.js, ajoutezGET /health, en dehors du routeur des tâches. Il renvoie le statut 200 et exactement :{ "status": "ok" }
Cette leçon s’exécute avec PORT=8080 et PAGE_SIZE=2.
À essayer : appuyez sur « Jouer » ; la console affiche Task tracker API on port 8080. GET /api/v1/tasks renvoie 2 tâches avec "total": 3 et "pages": 2. GET /api/v1/tasks?limit=3 renvoie les 3 tâches. GET /health renvoie { "status": "ok" }.
Essayez vous-même
// Les paramètres qui varient entre votre ordinateur portable et un serveur.
// Lisez chacun depuis process.env, en conservant ces valeurs par défaut.
export const config = {
port: 3000,
pageSize: 10,
};
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de API REST
1Ressources et verbes
Ressources et URLCréer avec POST4Navigateurs, versions et configuration
Qu’est-ce qu’une origineAutoriser une autre origineCORSUne page qui appelle l’APIEntraînez-vous par vous-même : Playground Express