Exercice 02 - Serveur web avec Node.js
Créez un fichier nommé serveur.js
qui contiendra le code de gestion de votre serveur. Vous pouvez vous inspirer des exemples dans les notes de cours comme code de départ.
Le serveur doit pouvoir récupérer la valeur du paramêtre code
dans l'url envoyé. Par exemple si j'envoie localhost:3000/?code=1
la valeur est 1.
Pour cette exercice nous ne tiendront pas compte de la méthode HTTP de la requête (GET, POST, etc.)
Créez un second fichier nommé professeurs.js
qui aura la structure d'un module JS et qui contiendra l'objet suivant :
Ajoutez dans unl'objet JavaScript suivant à votre code et importez-le dans votre ficher serveur.js
:
const professeurs = {
1: { nom: "Fréchette", prenom: "Mathieu"},
2: { nom: "Lagacé", prenom: "Christiane" },
3: { nom: "Trottier", prenom: "Sébastien" },
4: { nom: "Tousignant", prenom: "Simon" },
5: { nom: "Mercier", prenom: "François" },
6: { nom: "Croteau", prenom: "Carine" },
7: { nom: "Taleb", prenom: "Frédérik" },
8: { nom: "Ouellet", prenom: "Alexandre" },
}
Manuel
Pour plus d'information sur les modules en JavaScript, vous pouvez consulter ce site : https://fr.javascript.info/modules-intro
Maintentant quand le serveur reçoit une url :
- Si le paramètre
code
est présent, affichez le prénom et le nom du professeur correspondant à sa valeur. Le texte retourné sera "Bonjour prénom nom" dans une balise H1 et le code de statut sera 200. - Si le paramètre est absent ou bien que la valeur n'est pas présente dans l'objet, affichez "Professeur non trouvé, vous devez fournir un code de professeur valide" dans une balise H1. Le code de statut sera 404.
Astuce
Changez la valeur du Content-Type pour que le format de la réponse soit du html.
Utilisation de modules externes
- Installez nodemon et configurez votre projet pour pouvoir le lancer avec la commande
npm dev
. - Installez le module dotenv et modifiez votre code pour que la valeur du port à utiliser soit stockée dans un fichier .env. Utilisez 3030 comme valeur pour le port dans le fichier .env. Modifiez votre code pour que si la valeur du fichier .env ne peut être lu le serveur utilisera le port 3000 à la place.
Gestion des routes
Maintenant que vous avez un serveur web qui fonctionne, on va l'améliorer un peu avec une gestion basique de route.
- Quand on n'entre que l'hôte ou bien la route
/
, affichez en html "Bienvenue à mon premier api" dans une balise h1 - Quand on entre la route
/professeurs
, reprenez le code de la première partie. Donc si j'entrelocalhost:3000/professeurs?code=1
la réponse sera "Bonjour Mathieu Fréchette" dans une balise H1. - Quand j'entre la route
/professeurs/tous
je retourne au format json l'objet professeurs. (N'oubliez pas dans ce cas de changer la valeur du content-Type pour indiquer qu'on retourne du JSON) - Si j'entre une route qui n'est pas gérée par votre code, par exemple
/patate
, retournez au format JSON le message suivant :
Astuce
Utilisez la fonction JSON.stringify() pour convertir un objet en JSON. Dans les notes de cours sur le format JSON vous avez des exemples.
Test de votre serveur
Dans un nouveau répertoire sur Postman, créez des requêtes pour tester chacun des résultats possibles.