Vous êtes sur la page 1sur 2

EXAMEN FINAL

Département TI Date ../01/2023


Matière NODEJS Durée 01h30
Enseignants A. AJOUA Doc. Autorisés NON
Calculat. Autorisée NON
Classes DSI31/DSI32 Nombre de pages 2

Exercice 1 : Questions de cours 6 Pts

1. Quelles sont les différences entre le module ‘http’ natif de NodeJS et le framework
‘express’ ? Expliquez à travers un exemple.
2. Définissez le patron ‘reactor’ et détaillez ses étapes avec un schéma.
3. Qu’est est qu’un middleware et quelles sont ses utilisations dans le framework ‘express’ ?
4. Expliquez le concept de ‘Template Engine’ moyennant un schéma.

Exercice 2 : Étude de cas 14 Pts

On se propose de développer un système de location de voiture.

Une voiture est caractérisée par son immatriculation, sa marque, son modèle, année : la date de
sa première mise en circulation et prix : le prix de location par jour.

Un client est identifié par sa CIN, on garde son nom, son prénom, son adresse et sa date de
naissance.

Une réservation est identifiée par un id et caractérisée par une date, la date de début, la date de
fin de la réservation, le client et la voiture.

Le système est composé d’une API et un site web.

• L’API offre les URLs suivantes :

POST : ‘/clients/register’ : permet d’ajouter un client et retourne un nom et un mot de passe


avec le code ‘201’, si le client à moins de 18 ans, un message « Le client doit avoir au moins 18
ans » est retournée.

POST : ‘/clients/login’ : permet d’authentifier un client et retourne un json web token, ce token
sera utilisé pour l’appel des autres URLs.

POST : ‘/reservations/’ : ajoute une réservation avec toutes ses informations : (les dates, le client
et la voiture). Vérifie si le token existe dans le header de la requête, sinon le code 401 est
retourné.

• Le site web affiche les réservations par date :

GET :’/reservations/:date’ : remplit les réservations selon la date dans une liste ‘reservations’ et
renvoie la template ‘reservations.html’. Vérifie si le token existe dans le header de la requête,
sinon le code 401 est retourné.

A.U. 2022/2023 – Sem. 1 Page 1/2


Rent a car Date : (date système)
Liste des réservations par date
{Date}
Réservation N° : (id) Date : (date)
De : (date début) Au : (date fin)
Client : (nom), (prénom)
Voiture : (modèle), (années), (immatriculation), (prix)
-----------
Réservation N° : (id) Date : (date)
De : (date début) Au : (date fin)
Client : (nom), (prénom)
Voiture : (modèle), (années), (immatriculation), (prix)
......
© 2023 ISETCH
Figure 1 : Modèle de la page reservations.html

Travail Demandé :
1. Proposez la structure du projet nodejs : les dossiers et les fichiers.
2. Quels sont les modules nécessaires pour le développement du système?
3. Développez les middlewares nécessaires.
4. Développez les routes demandées dans leurs fichiers correspondants.
5. Développez la template ‘réservations.html’ avec la notion de partials.
6. Développez le fichier index.js.

Bonne chance !

A.U. 2022/2023 – Sem. 1 Page 2/2

Vous aimerez peut-être aussi