le body
Je sais démarrer mon serveur, comment recevoir des requetes, comment les arranger selon le contexte et l'ordre donné.
GET
/POST
/PUT
/DELETE
.
Maintenant il me faut un moyen de faire passer de l'information à mes requetes.
Dans la partie #3, on a eu un petit teasing des params. Flashback:
app.delete("/champions/:id", (request, response) => {
// ...etc...
Et bien maintenant, je vais aller plus loin. Vers l'infini et au-dela 🚀
Lorsque je recois une requete, j'ai accès dans mon callback (la petite fonction dont les deux premiers parametre sont request
et response
).
Le response
n'est pas sorcier, on l'utilise depuis le début de ce cours.
Le request
nous interesse beaucoup plus pour cette partie.
Amusons-nous à faire un console.log
de ce que contient l'objet request.body
:
app.post("/champions", (request, response) => {
console.log(request.body)
response.send({
message: "Je veux bien créer un champion, mais c'est quoi son nom?",
})
})
Bon, rien d'interessant, allez je modifie ma requete sur Postman:
Bon j'ai que ca: {}
, c'est normal je n'ai rien envoyé dans le body
. Voilà comment je dois faire:
Voilà qui est beaucoup mieux: { name: 'Graves', description: 'Champion cancer' }
Et là je peux enchainer et utiliser mon body
comme bon me semble request.body.name
ou request.body.description
.
lesparams
app.get("/champions/:id", (request, response) => {
console.log(request.params)
response.send({
message: `T'as demandé le champion ${request.params.id} ?`,
})
})
Je peux aussi faire ca comme suit pour les enchainer:
app.get("/champions/:id/day/:day", (request, response) => {
console.log(request.params.id)
console.log(request.params.day)
response.send({
message: `T'as demandé le champion ${request.params.id}
?`,
})
})
les query params
app.get("/meteo", (request, response) => {
console.log(request.query)
response.send({
message: `T'as demandé la meteo d'${request.query.start} à ${request.query.end} ?`,
})
})
Ce qui donne:
Je peux tout mélanger si je veux
app.get("/meteo/:ville", (request, response) => {
console.log("Body", request.body)
console.log("Params", request.params)
console.log("Query", request.query)
response.send({
reponse: `Tu m'as dis ${body.message}`,
ville: request.params.ville,
meteo: `T'as demandé la meteo d'${request.query.start} à ${request.query.end} ?`,
})
})
La difference entre les trois
Le body est généralement utilisé pour donner
de la donnée, comme des infos de création ou de mise à jour.
Tandis que les params
vont plus etre utilisés pour dire, "je veux la donnée du champion avec l'id: 1", "je veux supprimer ca",
Les query
, ce serait plus: donne moi les évenement de "telle date à telle date".
Top comments (4)
Vu que tu utilises express, peut être que zodios pourrait t'intéresser.
Tu peux le pluguer sur un serveur express existant, mais tu auras les annotations de types même en pur JavaScript et l'autocompletion .
Nice, je checkerai ca!
Ah? Manque le contenu
Ah j'ai mis en published? my bad 🥲
Ce sera pret pour ce soir!