0% ont trouvé ce document utile (0 vote)
29 vues10 pages

TS2 Exercices

Ce document présente un TD/TP sur l'utilisation de JavaScript et TypeScript en Back-End avec Node.js et Express.js. Il inclut une série d'exercices pratiques, tels que la création d'un serveur, la mise en place d'une API REST, la gestion des erreurs, et l'authentification. Les objectifs principaux sont l'apprentissage de TypeScript, la connexion à une base de données MySQL, et l'implémentation de middlewares.

Transféré par

touilyasser7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
29 vues10 pages

TS2 Exercices

Ce document présente un TD/TP sur l'utilisation de JavaScript et TypeScript en Back-End avec Node.js et Express.js. Il inclut une série d'exercices pratiques, tels que la création d'un serveur, la mise en place d'une API REST, la gestion des erreurs, et l'authentification. Les objectifs principaux sont l'apprentissage de TypeScript, la connexion à une base de données MySQL, et l'implémentation de middlewares.

Transféré par

touilyasser7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD/TP [Link] + Express.

js
JS/TS en Back-End

M. Mohammed BELATAR
[Link]@[Link]
avec Mme. FZ MOUTAI et M. YF EBOBISSE

3ème Année Ingénierie en Informatique et Réseaux

2 décembre 2024

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 1 / 10


Sommaire

1. Exercices : TypeScript et Back-End


Exercice 1 : Création d’un Serveur Simple avec Express
Exercice 2 : API REST avec [Link]
Exercice 3 : Middleware avec [Link]
Exercice 4 : Connexion à une Base de Données avec MySQL2
Exercice 5 : Gestion des Erreurs
Exercice 6 : CRUD Complet avec MySQL2
Exercice 7 : Authentification Simple

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 2 / 10


Exercice 1 : Création d’un Serveur Simple avec Express

Initialisez un projet TypeScript avec [Link].


Installez les dépendances nécessaires :
Commande
npm install express @types/express ts-node

Configurez un fichier [Link].


Créez un serveur [Link] simple avec une route / qui renvoie :
Exemple
"Bienvenue sur votre serveur [Link] avec TypeScript !"

Extension : Ajoutez une route /status qui retourne un objet JSON avec
l’état du serveur.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 3 / 10


Exercice 2 : API REST avec [Link]

Implémentez une API REST pour gérer des utilisateurs :


GET /users : Retourne une liste statique d’utilisateurs.
POST /users : Ajoute un utilisateur (stockez les utilisateurs en
mémoire).
GET /users/ :id : Retourne un utilisateur spécifique.
Utilisez TypeScript pour définir des types ou des interfaces.
Extension : Ajoutez des validations pour vérifier que les données POST
incluent un name et un email.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 4 / 10


Exercice 3 : Middleware avec [Link]

Implémentez un middleware pour logger toutes les requêtes entrantes


avec leur méthode HTTP et leur URL.
Ajoutez un middleware pour valider que chaque requête POST vers
/users inclut un champ name.
Testez ces middlewares avec différentes requêtes.
Extension : Implémentez un middleware qui vérifie la présence d’un header
X-Auth-Token et rejette la requête avec un code 403 si ce n’est pas le cas.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 5 / 10


Exercice 4 : Connexion à une Base de Données avec
MySQL2

Configurez une base MySQL locale avec une table users :


id (INT, AUTO_INCREMENT, PRIMARY KEY)
name (VARCHAR(50))
email (VARCHAR(100))
Connectez-vous à cette base de données avec mysql2.
Créez une route GET /users pour lister tous les utilisateurs.
Extension : Ajoutez une route POST /users pour insérer un utilisateur
dans la base.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 6 / 10


Exercice 5 : Gestion des Erreurs

Implémentez une gestion d’erreurs centralisée dans l’API :


Retournez un code 400 pour une requête invalide.
Retournez un code 404 pour une route inexistante.
Ajoutez un middleware global pour gérer toutes les erreurs.
Extension : Ajoutez des logs pour les erreurs dans un fichier externe.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 7 / 10


Exercice 6 : CRUD Complet avec MySQL2

Implémentez les routes suivantes pour gérer les utilisateurs :


GET /users : Liste tous les utilisateurs.
POST /users : Ajoute un utilisateur.
GET /users/ :id : Retourne un utilisateur spécifique.
PUT /users/ :id : Modifie un utilisateur existant.
DELETE /users/ :id : Supprime un utilisateur.
Validez les données avant de les insérer ou les modifier.
Extension : Implémentez des validations pour vérifier que les champs name
et email sont valides.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 8 / 10


Exercice 7 : Authentification Simple

Implémentez une route POST /login :


Accepte un email et un password fictif.
Génère un token si les identifiants sont corrects.
Ajoutez un middleware pour vérifier que les requêtes vers /users
incluent un token valide.
Extension : Stockez les utilisateurs dans une base de données et vérifiez
les identifiants à partir de cette table.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 9 / 10


Résumé des Exercices

Objectifs couverts :
Utilisation de TypeScript en Back-End.
Création d’APIs REST avec [Link].
Connexion à une base MySQL avec mysql2.
Gestion des erreurs et implémentation de middlewares.

M. Mohammed BELATAR (EMSI) TD/TP : JavaScript/TypeScript en Back-End 2 décembre 2024 10 / 10

Vous aimerez peut-être aussi