Menu
CoddyTech

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.

challenge icon

Défi

Facile

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

  1. Dans config.js, lisez port depuis la variable d’environnement PORT et pageSize depuis PAGE_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.
  2. Dans server.js, importez config. Démarrez le serveur sur config.port et affichez le port utilisé. Avec PORT=8080, la console affiche exactement :
    Task tracker API on port 8080
  3. Dans routes/tasks.js, importez également config. Dans la route de liste, une requête sans ?limit= utilise config.pageSize au lieu de 10. Un ?limit= dans la requête reste prioritaire.
  4. Dans server.js, ajoutez GET /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,
};
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Playground Express