‫Instructeur :
‫Ainsi, dans cette conférence,
‫vous allez apprendre un moyen simple de définir des paramètres
‫directement dans l'URL, comment lire ensuite
‫ces paramètres et également comment y répondre.
‫Maintenant, ce que nous voulons réellement implémenter dans cette
‫conférence est un moyen d'obtenir un seul tour.
‫Donc en ce moment, nous avons ce point
‫final ici, qui nous donne toutes
‫les tournées, et nous voulons avoir quelque chose comme ça.
‫Alors, copions-le dans une nouvelle demande pour le moment,
‫puis nous voulons une barre oblique, puis l'ID de la tournée.
‫Par exemple, disons cinq, d'accord ?
‫Donc, c'est exactement comme nous en
‫avons parlé dans la conférence sur l'API
‫REST, où j'ai dit que si nous atteignions ce point de terminaison sans aucun ID,
‫alors comme ça ici, eh
‫bien, nous obtiendrions toutes les visites.
‫Mais si nous spécifiions un identifiant après cela, alors, juste comme
‫ça, et bien sûr, il
‫ne doit pas nécessairement s'agir d'un identifiant,
‫cela peut être n'importe quel identifiant unique, mais dans
‫ce cas, le moyen le plus simple de l'implémenter
‫est simplement de utiliser des identifiants, d'accord ?
‫Donc, ici, c'est bien sûr une variable, car ça
‫peut être cinq, mais ça peut aussi être n'importe quoi d'autre.
‫Et donc cette partie de l'URL
‫ici, donc ici, c'est une variable, d'accord ?
‫Et donc ce que
‫nous devons faire est de définir une route qui peut accepter une variable.
‫Très bien, alors faisons-le ici, et en
‫fait juste après celui-ci.
‫Et je vais juste aller de l'avant et le
‫copier, parce que vous savez déjà comment l'écrire à ce stade.
‫Et donc, ouais.
‫Nous avons donc ici la
‫route, et maintenant tout ce que nous avons à faire est d'ajouter cette variable.
‫Et c'est très facile.
‫Nous avons donc à nouveau notre barre oblique, puis
‫la variable, nous la définissons à l'aide de deux points, comme ceci.
‫Et donc comme ça, nous avons créé une variable appelée ID.
‫Cela pourrait bien sûr être
‫autre chose, comme var ou X.
‫Peu importe.
‫Mais celui-ci s'appelle ID, d'accord ?
‫Maintenant, nous ne voulons pas renvoyer quelque
‫chose comme ça, alors commentons-le.
‫Et ce que je veux que vous
‫jetiez un coup d'œil, c'est au
‫journal des points de la console, req dot params.
‫D'accord, donc request dot params est l'endroit où tous les paramètres de toutes
‫les variables que nous définissons ici sont stockés, d'accord ?
‫Donc, ces variables ici dans l'URL sont appelées paramètres, et encore une fois,
‫elles sont dans des paramètres de point req, disponibles
‫pour que nous puissions les utiliser maintenant.
‫Jetons donc un coup d'œil maintenant
‫et effectuons cette requête.
‫Et pour l'instant, ça ne va rien
‫faire, donc ça ne nous donnera pas automatiquement
‫la tournée numéro cinq, bien sûr.
‫Mais ce que je veux faire
‫pour le moment, c'est simplement jeter un œil aux paramètres de points requis.
‫Et donc en effet, ici nous avons, ID est cinq.
‫Ainsi, request dot params est un très
‫bel objet qui attribue automatiquement la
‫valeur à notre variable, donc à notre paramètre que nous avons défini.
‫Et nous pourrions en fait définir plusieurs.
‫Nous pourrions donc dire
‫ID, puis nous pourrions dire X, et nous pourrions
‫dire Y, et puis, bien sûr, nous devrions tous les définir.
‫Donc 23
‫et 45, disons.
‫Envoyez ce gars.
‫Et puis, en effet, nous
‫avons un objet avec toutes ces trois variables en eux.
‫D'accord, maintenant si nous les définissons comme ceci dans l'URL,
‫nous devons en fait les spécifier.
‫Donc, si nous n'avions pas le
‫paramètre Y, nous rencontrerions
‫une erreur, car nous n'atteignons pas exactement cet itinéraire, d'accord ?
‫Notre route n'est donc plus exactement celle-ci, mais elle
‫n'est plus que celle-ci.
‫Et donc, il y a une erreur, d'accord ?
‫Avoir du sens ?
‫Maintenant, il y a en fait une chose que nous
‫pouvons faire, et ce sont les paramètres facultatifs.
‫Donc, si vous voulez rendre ce paramètre facultatif, nous
‫y ajoutons simplement un point d'interrogation,
‫et maintenant, il est facultatif, nous n'avons donc plus à le spécifier.
‫Alors juste comme ça.
‫Et donc maintenant nous n'avons que cinq, 23, et puis Y
‫est toujours là, mais ce n'est pas défini, car
‫c'est maintenant facultatif.
‫D'accord.
‫Mais débarrassons-nous de tout ça, parce que
‫nous n'avons vraiment besoin que de la pièce d'identité, d'accord ?
‫Et maintenant, tout ce
‫que nous avons à faire est d'obtenir la visite avec cet
‫identifiant à partir de nos données. json, à partir de notre fichier JSON, n'est-ce pas ?
‫Donc, en gros, à partir du tableau des visites.
‫Et donc cela ne devrait pas être trop difficile.
‫Et donc disons
‫que const tour est égal
‫à tours dot
‫find.
‫Et je ne sais pas si vous connaissez
‫cette méthode de recherche ici.
‫Donc, une fois de plus, cela n'a rien à voir avec Node
‫ou Express, c'est juste une fonction JavaScript normale que
‫vous pouvez utiliser sur des tableaux.
‫Et la façon dont cela fonctionne est la suivante.
‫Donc ici, nous passons une fonction de rappel,
‫et laissez-moi donc commencer par écrire celle-ci.
‫Donc, l'ID d'élément est
‫égal aux paramètres de point
‫req, d'accord ?
‫Donc, en gros, cela parcourra le tableau,
‫et dans chacune
‫des itérations, nous aurons accès à l'élément
‫actuel, et nous renverrons soit vrai,
‫soit faux dans chacune des itérations, d'accord ?
‫Maintenant, ce que la méthode find fera
‫alors, c'est que fondamentalement, elle
‫créera un tableau qui
‫ne contient que l'élément où cette comparaison s'avère ici vraie, d'accord ?
‫Et dans cette situation, nous voulons trouver l'élément
‫où l'ID est égal à celui que nous
‫obtenons à partir des paramètres.
‫Et donc en spécifiant cette fonction de rappel
‫ici avec cette comparaison, nous nous assurerons
‫que seul l'élément où l'ID est réellement égal
‫à l'ID spécifié dans les paramètres
‫sera renvoyé par la méthode
‫find et stocké dans la tournée, d'accord ?
‫En fait, cela ne va pas fonctionner comme ça, parce que comme vous
‫le voyez ici, ces
‫valeurs ici, ce sont en fait des chaînes, d'accord ?
‫Nous devons donc convertir cela en nombre, mais
‫c'est très facile.
‫Tout ce que nous
‫avons à faire est de dire que l'ID est égal
‫à req dot params dot ID fois un.
‫C'est donc une astuce intéressante où
‫JavaScript, lorsque nous multiplions une chaîne qui ressemble à un nombre,
‫lorsque nous la multiplions avec un autre
‫nombre, il convertira alors automatiquement cette chaîne en un nombre.
‫C'est donc une très petite et jolie astuce que nous pouvons utiliser ici.
‫Et donc, maintenant, nous avons déjà notre tournée prête à être envoyée.
‫Et donc les données que nous voulons
‫envoyer sont des tournées égales
‫à la tournée.
‫Ou en fait, c'est juste
‫une tournée, donc la tournée devrait être égale à la tournée, d'accord ?
‫Avoir du sens ?
‫Alors peut-être que la partie la plus compliquée ici est
‫juste celle-ci, mais, oui, c'est encore une fois juste un JavaScript normal.
‫Et donc je pense, ou du moins j'espère,
‫que vous êtes déjà habitué
‫à utiliser ce genre de méthodes de tableau, d'accord ?
‫Donc, nous ne voulons que la tournée numéro cinq.
‫Et voyons donc si cela fonctionne réellement.
‫Et bien, ce n'est pas le cas, alors jetons un coup d'œil à cela.
‫Oh oui, en effet, ici, nous devons utiliser l'ID, bien sûr.
‫Donc pas req. paramètres.
‫IDENTIFIANT.
‫Bon, alors, réessayez.
‫Et maintenant, en effet, nous avons la tournée avec ID de cinq,
‫d'accord, et seulement cette seule tournée.
‫Essayons le numéro deux, par
‫exemple, et en effet, l'ID deux.
‫Mais maintenant, essayons une autre situation.
‫Allons-y, ID 23, et maintenant, nous n'obtenons
‫rien en retour, n'est-ce pas ?
‫Et c'est parce qu'il n'y a pas de tournée avec l'ID de 23, mais
‫nous retournons toujours le code d'état 200 OK, et donc,
‫ça n'a pas beaucoup de sens, d'accord ?
‫Et donc allons de l'avant et changeons cela.
‫Et que devons-nous faire ici?
‫Eh bien, en tant que solution très simpliste,
‫ce que nous pouvons faire est de vérifier si
‫l'ID est plus grand que la longueur du tableau des visites, et
‫s'il est plus long,
‫eh bien, nous pouvons renvoyer une erreur 404 indiquant
‫que nous n'avons pas pu trouver n'importe quel tour pour la pièce d'identité donnée.
‫Faisons donc cette solution très simple, car, eh bien, ce n'est
‫pas la vraie API que nous construisons à
‫ce stade, et dans
‫ce cas, ce n'est pas
‫un problème d'utiliser une solution trop simpliste comme ça, car ce
‫n'est pas le chose réelle que nous construisons ici.
‫Nous essayons vraiment de
‫nous familiariser avec le fonctionnement d'Express.
‫Et la même chose peut être dite ici,
‫par exemple, quand nous...
‫Donc ici, où nous publions une nouvelle tournée, dans
‫le monde réel, nous devrions toujours, toujours vérifier si l'entrée de
‫l'utilisateur est valide, donc si elle
‫ne contient aucun code malveillant, ou vraiment, tout
‫ce que nous n'avons pas. t veux dans notre enveloppe.
‫Et encore une fois, nous allons le faire, bien sûr,
‫plus tard, mais dans ce petit
‫exemple ici, je veux vraiment juste me concentrer sur les fondamentaux, d'accord ?
‫Implémentons donc rapidement ce que nous venons
‫de dire, à savoir que si l'ID est supérieur à la longueur des points des
‫tours, par exemple, disons que nous avons 12 tours dans notre tableau,
‫eh bien, si l'ID est alors 13, ou 15, ou peu importe,
‫eh bien, dans ce cas, l'ID n'est pas valide.
‫Donc, nous disons retour, et c'est parce que nous voulons
‫quitter la fonction à ce stade, d'accord ?
‫Et c'est pourquoi nous disons retour.
‫Ensuite, nous envoyons un statut de 404,
‫car nous n'avons trouvé aucune visite pour cet
‫ID, puis une simple réponse JSON
‫avec un statut d'échec.
‫Donc échouer est ce que nous envoyons chaque fois que nous avons un code 400.
‫Et puis juste une propriété de
‫message, ID invalide.
‫D'accord.
‫Et donc testons cela maintenant.
‫Nous avons donc nos 23.
‫Et, en effet, 404 introuvable, ID invalide.
‫C'est exactement ce que nous venons de faire, et
‫on dirait que ça marche, d'accord ?
‫Une autre solution que
‫nous pourrions bien sûr
‫implémenter ici aussi serait de faire
‫ce test après avoir fait la tournée ici.
‫Donc, nous obtenions la pièce d'identité, puis
‫nous essayions de trouver une tournée, et s'il
‫n'y avait pas de tournée,
‫eh bien, nous dirions que la pièce d'identité n'est pas valide.
‫Commentons donc celle-ci, en double, juste
‫pour que nous gardions les deux solutions ici.
‫Et donc on peut dire, s'il n'y a pas de tournée, d'accord ?
‫Donc, fondamentalement, le résultat
‫ici, s'il n'y a pas de
‫tournée trouvée, alors cette variable est fondamentalement indéfinie, et
‫nous pouvons alors tester cela ici, comme ceci.
‫Donc, s'il n'y a pas de tournée, donc si la tournée est
‫fondamentalement indéfinie, eh bien, nous renvoyons ce message d'erreur.
‫Alors testons cela aussi.
‫Et donc effectivement, cela nous donne le même résultat.
‫D'accord, et juste comme
‫ça, vous avez appris à spécifier
‫des paramètres dans une URL, comme ça, d'accord ?
‫Ensuite, vous avez appris à lire ces paramètres
‫à partir de l'URL, en utilisant les paramètres de point req.
‫Eh bien, puis nous avons utilisé cet identifiant, donc ce paramètre,
‫afin de trouver une tournée avec cet identifiant exact.
‫C'est donc ce que nous avons fait ici, dans cette ligne, d'accord ?
‫C'était donc l'objectif de cette
‫vidéo, et passons maintenant à la suivante.