JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 10 · Exercice de TD
Passer commande
Dialoguer avec un serveur : fetch · niveau 2
Énoncé
Écrire async function commander(commande), qui envoie la commande au serveur et renvoie une phrase : « Commande n° 1001 enregistrée, total 122,00 €. » en cas de succès, « Commande refusée : » suivie de la liste des erreurs en cas de refus (400), et qui lève une erreur pour tout autre statut. Quelle commande valide donne un total de 122 € ?
Corrigé
async function commander(commande) {
const reponse = await fetch("http://localhost:8000/api/commandes", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(commande),
});
const corps = await reponse.json();
if (reponse.status === 201) {
return `Commande n° ${corps.numero} enregistrée, total ${corps.total.toFixed(2).replace(".", ",")} €.`;
}
if (reponse.status === 400) {
return `Commande refusée :\n${corps.erreurs.map((e) => ` - ${e}`).join("\n")}`;
}
throw new Error(`réponse inattendue : ${reponse.status}`);
}
Un exemplaire de « Programmation Java » (32 €) et deux d'« Analyse MPSI » (), retirés en boutique, font €. Avec cinq « Introduction à l'algorithmique » et un mode de retrait « voiture », le programme exercices/ex5-commande.mjs affiche :
Commande refusée :
- Stock insuffisant pour « Introduction à l’algorithmique » (3 en stock).
- Le mode de retrait est invalide.100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.