NodeJS, Express 및 MongoDB를 포함한 API Rest 개발자: #4 본문 및 매개변수

르 바디



Je sais démarrer mon serveur, comment recevoir des requetes, comment les 편곡자 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. 플래시백:

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 ).

response n'est pas sorcier, on l'utilise depuis le début de ce cours.

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 또는 request.body.description .

레 매개변수




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}
 ?`,
  })
})




레 쿼리 매개변수




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} ?`,
  })
})




라 차이 엔트레 레 트루아



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",

query , ce serait plus: donne moi les évenement de "telle date à telle date".

좋은 웹페이지 즐겨찾기