OK bienvenue de retour.
Il est temps que nous prenions ce que nous avons appris sur Mongo D.B et à propos de mangouste et nous ajoutons cela dans notre application de camp afin que nous puissions ajouter une certaine persistance de données.
Donc, les trois étapes principales sont l'installation et la configuration de mangouste et ensuite nous devons configurer le modèle le schéma et le modèle pour le terrain de camping.
Et puis nous devons utiliser le modèle de terrain de camping au lieu de nos itinéraires.
Avant d'aller plus loin, je tiens à souligner que j'utilise le V-2 du camp, donc j'ai fait une autre copie de V-1 et je vais travailler à l'intérieur de cela pour les prochaines vidéos.
Et c'est parce que nous allons commencer à faire des changements plus importants.
Certains fichiers vont se déplacer, mais je veux toujours que vous puissiez regarder le code V-1.
Donc V-2 et je vais être sûr de vous faire savoir quand nous commençons à travailler au lieu de v3.
Alors voyons ce que nous avons pour l'instant.
Courons après Oui.
Et rafraîchir.
D'ACCORD.
Donc, nous avons notre terrain de camping, nous pouvons ajouter un nouveau terrain de camping, mais bien sûr, nous avons le problème où dès que je redémarrer le serveur et les nouveaux terrains de camping que nous ajoutons vont disparaître.
Alors allons aborder cela.
Ouvrons tout ce dont nous avons besoin, ce qui est vraiment juste le dossier Jasc application pour l'instant.
Et la première chose que nous voulons faire est d'installer la mangouste.
Donc NPM installer mongoose dash dash sauver et tandis que cela va nous voulons nous assurer que nous avons notre processus en cours d'exécution en arrière-plan.
Homme-Dieu OK, c'est fait maintenant et nous pourrions regarder le paquet.
Jason vérifie que nous avons ici la mangouste.
Voilà.
C'est maintenant ici.
Nous allons exiger mangouste de l'enregistrer à une variable appelée mongoose juste comme ça.
Et une note rapide note ce que vous verrez assez souvent quand nous avons beaucoup d'exigences requises au sommet est quelque chose comme cela où nous pouvons effectivement se débarrasser de la Varsity les déclarations et de le faire si nous avons plusieurs déclarations de variables dans une rangée.
Nous pouvons les séparer par des virgules.
Voilà.
Et cela fera une variable appelée expression autre appelée à l'analyseur de corps et Mongoose, il fonctionnera tout de même.
Nous n'avons pas à écrire beaucoup et encore.
Et ce que vous verrez aussi parfois, c'est que les gens vont aligner ces derniers afin qu'il ressemble à cela.
Et c'est vraiment une question de préférence personnelle.
Je vais le laisser ici pour l'instant juste pour que vous le voyiez.
Mais vous verrez dans les deux sens.
Il n'affecte pas la façon dont le code fonctionne.
C'est juste un petit changement stylistique.
OK, nous allons sauver et exécuter Knode après Jésus, assurez-vous que nous n'obtenons pas d'erreurs.
Génial.
Maintenant, ce que nous voulons faire est de connecter la mangouste.
Donc, nous allons faire mongoose connecter et nous n'avons pas encore une base de données dans notre Mongar TV pour que nous puissions simplement faire un dynamiquement et nous avons besoin de se connecter à Mongo DB colon slash slash localhost slash, puis le nom d'un Base de données qui n'existe pas encore.
Alors appelez-le simplement camp de Yelp juste comme ça et économisez.
Et ceci créera la base de données de campagnes de Yelp pour nous au lieu de Mangu D-B et nous pouvons juste tester cela dehors si nous courons l'app aucun aucun problème du tout.
La prochaine chose que nous devons faire est de mettre en place notre schéma et je vais le faire ici.
J'ajouterai donc un petit commentaire ici.
Schéma mis en place et ce fichier va être un peu long et dans la vidéo à venir, nous allons le refactoriser.
Ce n'est donc pas la façon dont vous le feriez dans une application de production réelle.
Si vous aviez 10 modèles différents et des schémas différents, il deviendrait très fou très vite, surtout si vous aviez beaucoup de routes.
Nous allons donc briser ce dossier en fichiers séparés plus tard, mais pour l'instant nous faisons juste un schéma.
Alors appelez-nous le schéma de terrain de camping var et puis nous allons définir que égale à nouveau mongoose schéma de capitale nous.
Et pour l'instant un terrain de camping a juste un nom qui est une ficelle et une image.
C'est aussi une chaîne et nous utilisons simplement ce que nous avons déjà ici et nous allons sauver alors la dernière chose que nous devons faire est de compiler cela dans un terrain de camping modèle var égale mongoose top modèle et puis ici encore camping en guillemets.
Et enfin le schéma qui est le schéma du terrain du camp.
Ok, alors ce que cela devrait faire est de nous faire un modèle maintenant qui utilise ce schéma et a un tas de méthodes sur elle afin que nous puissions faire des choses comme le terrain de camping trouver.
Et la première chose que nous voulons faire est d'ajouter dans un terrain de camping simple.
Prenons l'un d'entre eux et nous allons faire un camp de camping pour créer pour commencer.
Donc, ça ressemble à ça.
Et ce n'est qu'une chose temporaire juste pour s'assurer que les choses fonctionnent, nous allons le supprimer dès que nous l'essayons.
Donc camping créer et puis se souvenir que nous passons dans l'objet que nous voulons créer.
Je vais mettre en forme un peu plus agréable comme ça.
Nous créons d'abord l'objet et ensuite nous avons cette fonction de rappel après.
La première chose est l'erreur et ensuite la deuxième serait le terrain de camping.
Et nous ferons simplement un journal simple et constant.
Donc, si l'erreur annule cette erreur de journal, sinon annuler le journal nouvellement créé terrain de camping.
Juste comme ça.
Et puis sur la ligne suivante, nous allons faire contre ..
Pouah.
Camping.
D'ACCORD.
Donc, oui, c'est beaucoup de code.
Mais ce que nous faisons, c'est de créer un terrain de camping avec ces données, puis je l'ai juste espacé plutôt que de le faire tout sur une ligne gigantesque.
Je l'ai espacée de sorte que nous avons la fonction de rappel qui sera exécuté une fois que cela est fait.
Que ce soit réussit ou non, nous avons une fonction de rappel et nous traitons l'erreur la traiter de façon équitable.
Nous imprimons donc une erreur.
Et s'il n'y a pas d'erreur, nous allons imprimer le terrain de camping.
D'accord.
Donc, ce que nous pouvons faire maintenant est de tester cela en exécutant simplement le noeud.
Voilà.
Terrain de camping nouvellement créé.
Alors que créer fonctionnait.
Il n'y avait aucune erreur rien imprimé.
Donc, nous avons obtenu cela et il ressemble à l'image et le nom.
Et aussi pour vérifier qu'il peut ouvrir le Conseil Mongo et nous pouvons faire un spectacle TBS.
Voici notre nouvelle base de données de Joachim et nous pouvons utiliser la came Yelp comme ça.
Et puis ce que nous pouvons faire est de montrer des collections et nous avons des terrains de camping qui est généré parce que le nom de notre modèle Cingular est camping et il pluralized pour nous.
Et puis ce que nous pouvons faire est D-B terrains de camping espère que trouver.
Et là, nous allons un terrain de camping, il a un ID automatiquement attribué le nom et l'image.
Impressionnant.
Donc nous allons sortir et ensuite ajouter dans un terrain de camping plus va se débarrasser de celui-ci.
Et plutôt que Semin Creek nous ferons granite hill et je veux juste que nous ayons quelques données de démarreur pour travailler avec.
Donc, l'image du nom juste comme ça.
Et puis nous pouvons exécuter ce nouveau nœud de sauvegarde.
Oui, il ya notre deuxième terrain de camping que nous avons créé granite Hill et c'est suffisant pour l'instant.
La prochaine chose que nous voulons faire est de remplacer tout ce code ici.
Nous pouvons nous débarrasser de tout ce code, mais nous voulons aussi remplacer tout le code où nous utilisons ce terrain de camping au réseau plutôt que d'utiliser un tableau codé en dur.
Ce que nous allons faire ici lorsque nous recevons tous les terrains de camping et de les montrer sur la liste de cette page ici, nous allons récupérer tous les terrains de camping de la base de données afin que nous puissions faire cela d'abord.
Je vais maintenant commenter cette ligne.
Nous avons besoin d'obtenir tous les terrains de camping de la D-B et nous voulons rendre ce fichier.
Et la façon dont nous obtenons tous les terrains de camping est avec terrain de camping trouver et nous sommes à la recherche de tout.
Et puis nous avons besoin d'une fonction de rappel et il prend l'erreur d'abord et ensuite notre paramètre sera appelé camping et vérifiera toujours s'il y avait une erreur si l'erreur.
Et nous allons juste faire une erreur de journalisation constante.
Pour l'instant, nous aurons une meilleure gestion des erreurs plus tard, lorsque nous afficherons un message à un utilisateur.
Pour l'instant nous ne faisons que l'imprimer.
Et puis ici ce que nous allons faire est de faire un rendu de point rouge comme nous l'avons ici et nous pouvons en fait laisser la façon dont il est.
Et la raison en est que nous voulons toujours rendre le terrain de camping et dans le dossier des terrains de camping Nous nous attendons à ce qu'il s'appelle des terrains de camping.
La différence est la source du camping n'est plus le tableau que nous avions ici terrain de camping est définie ici.
Alors rendons un peu plus clair.
Je vais appeler ça tous les terrains de camping comme ça.
Et puis je vais changer ça.
Tous les terrains de camping afin que vous puissiez voir la connexion.
Donc nous faisons un terrain de camping pour trouver tous les terrains de camping dans la collection.
Lorsque c'est fait exécuter ce code.
Le rappel.
En cas d'erreur, imprimez l'erreur.
Sinon prendre tous les terrains de camping.
Il vient de revenir et de les envoyer à travers le camping que E.J. A déposé.
Maintenant, si nous sauvegardons et nous redémarrer le serveur et je vais me débarrasser de ce pour maintenant commenté autrement nous allons finir avec une autre colline de granit dans notre base de données.
Alors maintenant, nous allons démarrer le serveur et rafraîchir la page, nous ne voyons que deux terrains de camping qui est exactement ce que nous voulons.
Ces deux sont à la fois dans la base de données et nous ne nous occupons plus de ce réseau de terrains de camping qui est codé en dur.
Ceux-ci seront toujours dans la base de données jusqu'à ce que nous les supprimions.
Mais au moins si le serveur redémarre ou nous avons des problèmes là-bas, ils persistent.
Donc, maintenant, il est axé sur l'obtention de ce à travailler afin que lorsque l'utilisateur ajoute un nouveau terrain de camping, il fonctionne.
Et en ce moment, nous avons un petit problème.
Si je tape juste jibberish ici et cliquez sur envoyer, je reçois une erreur.
Le terrain de camping n'est pas défini et il me dit que c'est effectivement en fait la ligne 54 qui est ici où nous poussons le nouveau terrain de camping dans les terrains de camping.
Mais ce plateau de camping est indéfini parce que nous l'avons supprimé.
C'était un quai et nous nous en sommes débarrassés pour que cela fonctionne comme nous le voulons.
Nous n'avons plus besoin de cette ligne.
Et plutôt ce que nous voulons faire est de créer un nouveau terrain de camping et d'enregistrer à la base de données.
Donc, cela restera le même où nous avons besoin de saisir le nom et l'image et cela restera le même ainsi où nous faisons cet objet.
Et puis ce que nous pouvons faire, c'est simplement enregistrer cela à la base de données et nous pouvons soit le créer avec le terrain de camping qui créent et puis le premier argument, il ya la nouvelle chose que nous voulons créer que nous avons déjà commodément stocké dans un objet appelé nouveau terrain de camping ainsi Nous pouvons passer que dans et puis nous avons besoin de la fonction de rappel comme ça.
Et n'oubliez pas nos deux arguments d'erreur et nous allons appeler ce nouvellement créé juste comme ça et nous allons faire notre si il ya une erreur et s'il ya une erreur si il ya un problème avec les données de formulaire que l'utilisateur entre alors nous aurions à Réfléchir à ce que nous voulons réellement arriver.
Et finalement, ce que nous allons faire est de renvoyer l'utilisateur à nouveau au formulaire et de leur montrer un message qui dit quelque chose comme photo Caffey vide ou nom Campi vierge ou le nom de Campeon numéro ou ce qu'il est.
Mais nous pouvons leur montrer un message.
Pour l'instant, nous sommes coller avec notre journal alt alt essayé et vrai de l'erreur et puis Sinon, si cela a fonctionné, bien que nous devons faire est de retourner à des terrains de camping comme ça.
Rediriger les campements.
Voilà.
Et puis qui va exécuter cette route à nouveau ici où vous trouverez tous les terrains de camping, y compris la nouvelle marque qui vient d'être ajoutée et puis il nous montrera ce modèle à nouveau.
Alors testons-le.
Je vais redémarrer le serveur et je vais aussi prendre une image à utiliser et je vais utiliser celui-ci ici.
Copier que vous Aro alors je vais ouvrir l'application ici et rafraîchir OK et puis nous allons essayer d'ajouter un nouveau terrain de camping.
Et celui-ci sera appelé lieu de repos de Cloud qui, dans hit submit et il semble que cela a fonctionné.
Vous retournez ici.
Nous n'obtenons pas d'erreurs.
Et si nous rafraîchissons la page, il apparaît encore et si nous redémarrer le serveur, c'est le test vrai.
Il est toujours là.
D'ACCORD.
Nous avons donc introduit la persistance des données dans nos terrains de camping.
Le serveur peut arrêter cette puissance peut sortir quelle calamité peut se produire.
Et nos données vont persister.
Permettez-moi de revenir à Cloud 9 et je vais faire un bref résumé de ce que nous avons fait.
Nous avons donc ajouté la mangouste ici.
Nous nous sommes connectés à une base de données de camp de yelp qui n'existait pas au moment où nous avons commencé à courir ce code mais chaque fois qu'il utilisait la base de campement initialement créée et puis nous avons mis en place le schéma de terrain de camping qui a maintenant un nom et une image et c'est tout.
Mais si nous voulons ajouter plus de choses.
C'est très facile et flexible.
Et puis cette ligne infâme où nous compilons le schéma dans un modèle où nous prenons ce modèle pour ce qu'un terrain de camping devrait ressembler et nous le transformons en un code que nous pouvons utiliser qui a un tas de méthodes, y compris trouver Ce qui est important.
Nous l'utilisons à l'intérieur de notre terrain de camping pour obtenir où nous récupérons tous les terrains de camping et de les montrer tous.
Et puis aussi créer grand ici où nous prenons des données de la forme.
Et c'est un peu déroutant parce qu'il ya tellement de variables.
Nous saisissons le nom et le corps du formulaire.
Nous faisons un nouvel objet comme une étape distincte.
Nous aurions pu prendre ce code et le coller ici.
Mais j'aime faire une nouvelle très bien qui montre juste ce que nous faisons.
Ainsi, le nouveau terrain de camping est un nom d'objet, une image provenant de la forme que nous créons avec cette fonction de rappel de couverture qui s'exécutera une fois que la création est effectuée, qu'elle soit réussie ou non.
Et puis nous nous occupons de l'erreur ici.
À l'heure actuelle, nous avons très très simple gestion des erreurs.
Maintenant, vous n'êtes pas vraiment la manipulation C'est juste l'erreur de reconnaître où nous sommes juste l'impression de l'erreur et puis sinon, si cela fonctionne, nous revenons à la page des terrains de camping qui nous ramène ici.
D'accord, nous avons maintenant la mangouste connectée.
Nous avons mis en place notre base de données.
Nous allons continuer à l'utiliser et bientôt nous allons voir un autre modèle et un autre schéma pour les utilisateurs lorsque nous avons l'authentification des utilisateurs pour les commentaires lorsque nous ajoutons des commentaires et quelques autres choses amusantes.