‫Instructeur masculin : Hé, là !
‫Apprenons donc maintenant à lire des documents avec Mongoose afin d'implémenter
‫ou d'obtenir une tournée et d'obtenir tous les gestionnaires d'itinéraires de
‫la tournée.
‫Et en commençant par le gestionnaire getAllTours.
‫Alors tout d'abord, supprimons ce morceau de code ici.
‫Et maintenant, ce
‫que nous allons faire pour obtenir toutes les visites de
‫la base de données est d'utiliser Tour.
‫Donc encore le modèle.
‫À la fin, nous utilisons la méthode find.
‫D'accord.
‫Alors rappelez-vous de l'intersection MongoDB, où lorsque
‫nous voulions rechercher tous les documents, nous
‫utilisions simplement find, d'accord ?
‫Et donc ici, c'est exactement la même méthode.
‫Et encore une fois, quand nous ne passons rien dedans,
‫comme nous le faisons
‫ici, alors il renverra tous les
‫documents de cette collection, d'accord ?
‫Donc dans ce cas, dans la collection de tournée évidemment.
‫Maintenant, comme avant, cela va retourner une promesse
‫que nous attendrons.
‫Et puisque nous voulons
‫attendre, nous devons en faire une fonction asynchrone.
‫Donc asynchrone.
‫Ensuite, ici, nous pouvons attendre et enregistrer le résultat dans des tournées.
‫D'accord.
‫Et c'est en fait ça.
‫Alors, débarrassons-nous de ces commentaires ici.
‫Nous ne voulons pas non plus de la propriété demandéeAt.
‫Donc c'était juste pour tester avant.
‫Et donc, oui, je pense que c'est ça.
‫C'est ainsi que nous obtenons toutes les
‫visites de la collection Tour.
‫Donc, en utilisant find, puis en attendant ce
‫résultat, puis en l'envoyant ici.
‫N'oubliez donc pas que nous avons ici cette propriété
‫de données pour envelopper essentiellement les visites.
‫Et puis nous envoyons également cette propriété ici,
‫qui mesure simplement le nombre de résultats
‫qui sont dans les tournées, d'accord.
‫D'accord?
‫Parce que bien sûr, cette méthode find
‫ici retournera un tableau de tous ces documents, et
‫les convertira aussi très bien en
‫objets JavaScript, d'accord ?
‫Donc, cette fonction ici, cette méthode de recherche,
‫fait vraiment tout le travail pour nous.
‫Maintenant, comme avant,
‫une étape de plus avant que nous puissions réellement essayer cela,
‫qui consiste à envelopper tout cela ici dans le bloc
‫try, puis à détecter toutes les erreurs potentielles.
‫Maintenant, dans
‫ce cas, il n'y aura plus d'erreurs de validation comme avant.
‫Mais envoyons toujours une erreur ici, dans ce cas,
‫et faisons-en simplement une 404.
‫Et cela n'a pas vraiment d'importance à ce stade car,
‫encore une fois, nous allons implémenter une
‫meilleure gestion des erreurs ici
‫dans la prochaine ou dans l'une des prochaines sections.
‫D'accord?
‫Mettons-le donc ici sur le statut : 'fail', et
‫le message à toute erreur que nous pourrions obtenir ici.
‫D'accord.
‫Alors, testons-le maintenant.
‫C'est celui-ci, Get All Tours.
‫Et oui, ça marche.
‫Nous avons donc ici le tableau des trois circuits que
‫nous avons actuellement dans notre base de données.
‫Parfait.
‫Ensuite, implémentons le gestionnaire getTour.
‫Alors écrivons le prochain que nous avons ici.
‫Et débarrassons-nous de ce code, et
‫de ce code.
‫D'accord.
‫Et celui-ci va en fait fonctionner de manière très similaire.
‫Donc je fais toujours cette capture d'essai ici.
‫Donc erreur, comme ça.
‫Parce que nous utilisons toujours async wait dans celui-ci.
‫Donc asynchrone.
‫Parce que maintenant pour trouver
‫une tournée, nous allons toujours attendre Tour. trouve.
‫Mais il ne s'agira pas simplement
‫de trouver, mais à la place, nous allons utiliser findById, d'accord.
‫Alors findById, mais d'où vient réellement cet identifiant ?
‫Vous vous en souvenez ?
‫Jetons donc un coup d'œil à l'itinéraire.
‫Donc, pour en revenir à
‫Postman, voici comment nous appelons ce point
‫final, oh, mettons déjà un ID plus réel ici.
‫Ainsi, par exemple,
‫celui de The Park Camper.
‫Et donc notre demande pourrait venir d'un itinéraire comme celui-ci.
‫Et donc ici, nous avons ce paramètre
‫ID directement dans notre itinéraire, n'est-ce pas ?
‫Jetons donc un œil à notre routeur ici.
‫Et souvenez-vous donc que c'est ainsi que
‫nous le spécifions, l'ID dans l'URL.
‫Donc, cette pièce d'identité fera évidemment partie de la demande.
‫Et alors, comment pouvons-nous réellement accéder à cet ID ici et
‫à ce gestionnaire ?
‫Eh bien, nous ne req. paramètres, id.
‫Et c'est ID
‫parce que c'est comme ça que nous avons appelé cette variable ici, n'est-ce pas ?
‫Si c'était le nom ici, alors
‫ici nous avions req. paramètres. nom, non?
‫Vous vous en souvenez ?
‫Et maintenant, gardons ça pour la tournée.
‫Maintenant, tout va bien.
‫Alors récupérons ce code ici.
‫Copiez-le ici.
‫Et puis aussi celui-ci pour le bloc d'erreur.
‫Et ne vous inquiétez pas, je vais expliquer cette fonction
‫ici dans une seconde.
‫Je veux juste finir ce code ici d'abord.
‫Donc, ce morceau de code ici va être exactement le
‫même pour ce bloc catch.
‫Sauvegardez-le maintenant, et
‫nous n'aurons donc aucune erreur ici de la part d'eslint.
‫Maintenant, à propos de cette méthode d'identification de
‫recherche ici, eh bien, rappelez-vous comment nous venons d'utiliser la recherche, d'accord ?
‫Donc, trouver, c'est trouver tous les documents.
‫Et puis nous avons
‫aussi findOne pour ne trouver qu'un seul document, d'accord ?
‫Et donc ce findById n'est vraiment qu'un raccourci, donc une
‫fonction d'aide pour, laissez-moi l'écrire ici
‫en tant que commentaire, pour
‫écrire findOne, puis
‫avec l'objet filter, ce qui est
‫exactement comme nous l'avons
‫appris dans l'intersection MongoDB.
‫Nous avons donc le champ ID.
‫Et ensuite, nous pourrions définir cela sur req. paramètres. identifiant.
‫Donc ceci ici fonctionnerait exactement de la même manière que cela, d'accord ?
‫Donc _id, car c'est à cela que ressemble l'ID.
‫MongoDB s'appelle donc _id.
‫Et nous pourrions bien sûr interroger ce champ, n'est-ce pas ?
‫C'est exactement ce que nous avons fait dans la dernière section.
‫Nous avons donc spécifié cet objet de filtre ici,
‫puis la propriété que nous recherchons,
‫puis la valeur que nous voulons rechercher.
‫Donc exactement la même chose, comme nous l'avons fait dans la dernière section.
‫Et cette méthode
‫findOne ici ne renverra alors qu'un des documents.
‫Maintenant, ce findById, comme je l'ai
‫mentionné précédemment, est simplement un raccourci pour avoir à écrire ceci.
‫Donc dans les coulisses, ça va faire exactement ça.
‫Mais Mongoose veut simplement nous faciliter la vie.
‫Et par conséquent, nous donne accès à une
‫méthode plus simple
‫appelée findById, qui attend simplement l'ID que nous recherchons.
‫D'accord?
‫Alors permettez-moi de laisser cela ici, juste à titre de référence.
‫Et maintenant, cela fonctionnerait déjà.
‫Alors, jetons un coup d'œil à cela.
‫Nous avons donc déjà mis l'ID de cette tournée.
‫Je pense que c'était ce Park Camper.
‫Donc ac2.
‫Et ac2, cela devrait être The Park Camper, et
‫en effet, il l'est.
‫Super.
‫Et c'est le moyen le plus simple de trouver ou
‫d'interroger des documents dans la base de données.
‫Il y a une tonne d'autres que nous pouvons faire avec les requêtes,
‫et nous ferons tout
‫cela une fois que nous aurons commencé à implémenter quelque
‫chose comme le filtrage, le tri ou la pagination,
‫et toutes ces bonnes choses un peu plus loin dans cette section, donc
‫dans quelques vidéos à partir de maintenant.
‫À ce
‫stade cependant, il suffit de simplement renvoyer tous les documents ici dans
‫ce gestionnaire de route.
‫Et puis ici, simplement celui de l'identifiant correspondant.
‫Et cela
‫fonctionne maintenant, et passons donc au suivant.