Dans cet exercice, nous allons continuer avec l'exercice précédent où nous avons
développé l'interaction entre l'application de nœud et le serveur MongoDB.
Dans cet exercice, je vais encapsuler quelques-unes des
opérations de base de données dans un module de noeud propre,
un module de noeud basé sur des fichiers,
puis l'utiliser dans mon application de noeud afin d'interagir avec le serveur.
Dans le même temps, nous allons effectuer plusieurs opérations sur
le serveur pour démontrer que nous serons en mesure d'
interagir avec le serveur en utilisant notre application de noeud et le pilote MongoDB de noeud.
Pour commencer, passons à notre projet,
puis créons un nouveau fichier nommé operations.js.
Ce fichier encapsulera toutes les opérations de base de données,
les quatre opérations que je vais effectuer insérer,
trouver, supprimer et mettre à jour un document dans ma base de données.
Maintenant, cela sera organisé comme un module de nœud basé sur des fichiers,
que je vais ensuite utiliser dans mon application de nœud pour accéder au serveur.
Donc, pour commencer,
laissez-moi d'abord exiger affirmation,
dans ce module de noeud,
et comme il se trouve être un module de noeud,
nous allons exporter plusieurs méthodes à partir du module de noeud.
La première méthode serait d'insérer un document évidemment comme vous vous y attendez,
et cela prendra quatre paramètres DB,
le MongoDB, connexion de base de données dans mon application de nœud,
que je vais obtenir dans l'application de nœud.
Ensuite, le second est le document que je veux insérer.
Le troisième paramètre est la collection dans laquelle je veux insérer le document.
Le dernier est une fonction de rappel,
qui sera rappelé une fois cette opération terminée.
Ensuite, fermons la fonction ici,
et cela encapsule essentiellement la méthode d'insertion de document ici.
Donc, c'est une fonction qui est exportée par ce module de noeud ici.
Maintenant, je vais aussi incorporer quelques méthodes supplémentaires ici.
Le second serait de trouver des documents.
Pas seulement un mais plusieurs documents.
Cela je voudrais chercher dans la collection et trouver tous les documents qui sont dans la collection.
Donc, c'est pourquoi je ne prends que la base de données
et la collection comme les deux paramètres avec le rappel.
La troisième fonction que je vais implémenter une exportation à partir d'ici est le document removedocument.
Cela prend en charge l'opération de suppression,
et donc le nom du document prendra la base de données,
le document, la collection et le rappel comme les quatre paramètres,
et nous appellerons le rappel lorsque l'opération est terminée.
La dernière, bien sûr, est de mettre à jour le document.
Bien sûr, vous n'avez pas nécessairement à le faire de cette façon.
Je pensais juste que ce serait une autre façon d'illustrer comment vous pouvez
encapsuler ces fonctions dans son propre module de nœud.
Il s'agit simplement de réorganiser le code d'une manière plus facile à utiliser.
Donc, pour les exportations,
pour le document de mise à jour, il prend la base de données,
une façon d'identifier le document comme un second paramètre.
Le troisième paramètre est la mise à jour,
et le quatrième paramètre est la collection dans laquelle
ce document existe et le rappel.
Ainsi, quatre fonctions à exporter par le fichier operations.js.
Maintenant, au sein de ces fonctions,
mettons en œuvre un par un.
Dans le document d'insertion,
la première chose que je vais faire est de dire la
collection const et cela dira la collection DB,
et le paramètre est la collection.
Donc, nous allons chercher la collection là-bas.
Maintenant, cela doit être effectué dans les quatre méthodes.
Donc, je vais aller coller ce code dans les quatre méthodes ici,
parce que c'est une fonction dont j'ai besoin dans chacune d'entre elles.
Donc, une fois que je reçois la collection,
alors comme vous vous souvenez de l'exercice précédent,
je peux effectuer des opérations sur la collection.
Donc, je vais dire collection, insert,
et cela prend comme premier paramètre le document à insérer,
et le deuxième paramètre est le rappel avec l'erreur et ce résultat.
Donc, maintenant, lorsque ce document
est inséré en appelant la méthode insert sur la collection de base de données,
la méthode insert me permet de vous rappeler,
est pris en charge par le pilote MongoDB.
Donc, c'est la méthode que nous utilisons ici,
ou c'est la fonction que nous utilisons ici.
Maintenant, la première chose que je vais vérifier pour ça, erreur assertequal, null.
Donc, je veux m'assurer que je n'ai pas d'erreur.
Donc, je veux m'assurer que l'erreur est nulle.
Si ce n'est pas nul,
cela imprimera les informations, puis quittera l'application.
En ce moment, je pense que c'est correct de gérer cela que plus tard,
nous verrons comment nous pouvons avoir un moyen global de gérer toutes les erreurs lorsque nous
implémentons dans la prochaine leçon une autre façon d'accéder à la base de données MongoDB.
Maintenant, après que je l'ai fait,
je vais mettre en œuvre,
je vais simplement enregistrer cette information.
Donc, je vais dire, consoles log et insérez-le.
Donc, cette information sera imprimée à l'écran ici, insérée.
Maintenant encore une fois, rappelez-vous les points-virgules et tout ce qui
est important ne les oublie pas lorsque vous tapez votre code.
Donc, je dirai résultat inséré.
Cet objet de résultat qui est retourné
aura une propriété appelée la propriété result,
et cette propriété contiendra une valeur.
Cette propriété de résultat est également un objet JavaScript,
et cela contiendra une propriété n qui nous indique combien de documents ont été insérés.
Donc c'est l'information que je vais imprimer ici,
et ensuite nous allons passer à la ligne suivante et
dire « documents dans la collection ».
Maintenant, c'est juste un moyen d'informer l'utilisateur que cette opération s'est déroulée correctement,
puis ils transmettront ce résultat à notre fonction d'appel.
Donc, nous allons appeler le rappel, puis le résultat sera le paramètre du rappel.
Donc, lorsque nous implémentons l'utilisation de cette fonction dans notre fichier index.js,
nous fournirons le rappel là qui
recevra le résultat comme paramètre entrant.
Donc, c'est pour le « InsertDocument ».
Maintenant, pour le « FindDocument
», ce que je vais faire est de dire,
« coll.find » et je vais trouver tous les documents.
Donc, c'est pourquoi je vais donner un objet JavaScript vide ici,
qui correspondra à tous les documents de la collection et ensuite je dirai,
« toArray » et cela prendra comme paramètre une fonction de rappel,
et à l'intérieur de cette fonction de rappel, bien sûr,
j'affirmerai que ce n'est pas nul,
et ensuite nous dirons, « callback docs. »
Nous remettrons simplement les documents récupérés à la fonction d'appel.
Maintenant, pour le « RemoveDocument », je vais dire, « collection DeleteOne ».
Donc, je vais essayer de trouver le premier document qui
correspond à ce que nous avons spécifié, puis le supprimer.
Et puis cela prendra, encore une fois,
une fonction de rappel comme deuxième paramètre,
et à l'intérieur de cette fonction de rappel,
la première chose que je vérifie est de m'assurer que l'erreur n'est pas nulle.
Et puis après cela, nous dirons,
« le journal de la console a supprimé le document virgule. »
Nous avons utilisé la virgule ici parce que c'est un objet JavaScript donc,
si vous spécifiez le journal de
la console comme celui-ci, le document sera imprimé et ensuite nous allons passer
ce résultat à travers la fonction de rappel.
Et puis enfin, pour la mise à jour, nous allons coll.UpdateOne.
C' est une méthode prise en charge par le pilote MongoDB.
Donc, je vais dire, « Update.One document
», et le deuxième paramètre est où nous
allons passer dans les champs qui doivent être mis à jour.
Et la façon dont ça se fait,
nous dirons, « mise à jour du deux-points ».
Donc, cela prendra les informations de mise à jour que
j'envoie et ensuite les passer dans le update.one.
Le premier est le document qui doit être mis à jour.
Le second est les champs du document qui doivent être mis à jour ici.
Et le troisième paramètre est nul,
et ce dernier paramètre est une fonction de rappel,
ce qui nous donnera évidemment le résultat de l'opération.
Donc, la première chose que je vais vérifier pour m'assurer que l'erreur n'est pas nulle.
Ensuite, je vais faire un « journal de console mis à jour le document avec ».
Maintenant encore une fois, les journaux de la console sont purement pour nous de nous
assurer que le code fait ce qu'il fait.
Ça n'aide en rien.
C' est juste pour notre propre information.
Dans un serveur de production,
vous n'auriez pas ces journaux de console, peut-être.
Vous pouvez les désactiver. Alors, c'est tout.
Donc, quatre méthodes étant prises en charge dans ce module de nœud basé sur un fichier particulier insérer,
trouver, supprimer et mettre à jour.
Donc, maintenant que nous avons implémenté ce module de noeud basé sur des fichiers,
allons au fichier index.js,
puis pour utiliser ce module de noeud basé sur des fichiers,
je dois exiger ceci ici.
Donc, je vais dire, « Const dboper requièrent. »
Comme il s'agit d'un module de nœud basé sur un fichier, vous obtenez le chemin complet du module de nœud,
et qui dans ce cas se trouve être. /opérations
car il se trouve dans le même dossier que mon fichier index.js.
Maintenant, une fois que nous avons fait cela,
puis ici, cette fonction,
ce code que nous faisions pour accéder à la base de données maintenant insérer,
nous allons utiliser le dboper que nous venons d'implémenter pour accéder à cette base de données.
Donc, nous allons dire, « dboper insert document
», et ce « insert document » prend le db comme premier paramètre.
La base de données ici, est cette base de données qui est entrée lorsque nous appelons MongoClient connect.
Donc, cette base de données sera transmise, donc de cette façon,
mon module de nœud d'opérations sait où accéder à la base de données.
Ensuite, le deuxième paramètre est le,
donc si vous regardez le « insert document », vous verrez
que le second paramètre est le document à insérer.
Donc, je vais dire, « nom. «
Je vais juste construire un objet JSON ou un objet JavaScript ici,
qui sera automatiquement mappé dans l'objet adjacent lorsqu'il est inséré.
Et le troisième paramètre, comme vous le voyez,
« collection de documents db et rappel. »
Donc, le troisième paramètre est la collection et la collection est
la collection vaisselle et le dernier est le rappel.
Le rappel à nouveau comme vous vous souvenez reçoit le résultat.
Si vous regardez en arrière le bébé implémenté le document d'insertion,
le rappel a reçu le résultat en tant que paramètre.
Donc, à l'intérieur de ce rappel, nous allons gérer cette valeur de résultat ici.
Donc, lorsque la valeur de résultat arrive, nous allons faire un console.log.
Nous dirons insérer la
barre oblique inverse N et nous dirons résultat OPS.
L' OPS indique le nombre d'opérations d'insertion effectuées.
Donc, c'est un autre objet qui va être sur l'
objet JavaScript résultat qui est transmis en tant que
paramètre et donc je vais juste imprimer cette valeur.
Ça nous donnera des informations sur ce qui s'est passé.
Maintenant, une fois cela terminé,
à l'intérieur de cette fonction de rappel, je vais appeler l'opération de base de données suivante.
Donc je vais dire dboper et ensuite trouver les documents.
Ensuite, je dirai dbplats et le troisième paramètre est docs,
qui est la fonction de rappel.
Lorsque je reçois les documents, je vais faire un
console.log disant que les documents trouvés,
et nous allons simplement verrouiller les documents à l'écran.
Donc, cela imprimera les documents trouvés.
Notez que cet appel est à l'intérieur de
la fonction de rappel qui est appliquée pour l'appel de fonction précédent,
donc c'est quelque chose que je veux que vous remarquiez spécifiquement.
Maintenant, encore une fois dans cet appel de fonction, ils doivent le faire de cette façon parce que tant que
ce rappel n'est pas appelé, nous ne pouvons pas faire l'opération suivante.
Donc, dans cette prochaine opération, je vais mettre à jour le document que je viens d'insérer.
Donc, je vais dire mettre à jour le document et je dirai Update Document DB,
puis le paramètre suivant est le document
et je n'ai pas besoin de spécifier le document entier, je ne peux spécifier qu'un seul champ et
puis cela trouvera le document qui correspond à ce champ particulier.
Ce que je vais faire est le paramètre suivant est la mise à jour qui doit être fournie.
Donc, la mise à jour est le champ que je veux mettre à jour,
donc je vais mettre à jour
le champ de description en disant Update
Test, puis le quatrième est la collection qui est Discs,
et le dernier est la fonction de rappel qui obtient
les docs comme valeur de retour ou
plutôt résultat de l'opération de mise à jour que nous venons d'effectuer.
Ensuite, à l'intérieur de cette fonction de rappel,
je vais à nouveau faire une barre
oblique inverse du document mise à jour N. Le document mis à jour sera transmis
dans result.result sur
cette propriété de l'objet résultat qui est passé le suivi. console.log
Notez encore une fois comment les appels sont imbriqués
dans les fonctions de rappel ici.
Je veux que vous remarquiez cette structure du code
spécifiquement parce que c'est ce à quoi je vais revenir dans le prochain exercice.
Maintenant, après que
je l'ai fait, je vais trouver les documents,
alors laissez-moi juste le copier et ensuite je vais utiliser le même code ici.
Donc, je vais dire, trouver des documents.
À l'intérieur ici, je vais à nouveau dire, trouvé document mis à jour.
Puis enfin quand j'en ai fini avec cela,
j'appellerai simplement db drop collection.
Donc, je vais supprimer cette collection de plats afin que je
nettoie ma base de données afin que je n'ai
rien de plus car pour le prochain exercice, je veux nettoyer
la base de données, puis commencer avec une base de données plus propre.
Donc, je vais nettoyer
la collection de vaisselle et cela entraînerait un rappel.
Donc, à l'intérieur ici, je vais faire un console.log disant,
collection abandonnée, et puis je vais juste imprimer le résultat qui est arrivé.
Puis, enfin, fermez la base de données.
Notez que la structure du code,
DB insert document et à l'intérieur de la fonction de rappel, je vais appeler
la fonction suivante et à
l'intérieur du rappel off que je vais appeler
la fonction suivante et à l'intérieur de la fonction suivante de rappel et ainsi de suite.
Donc, vous voyez un ensemble imbriqué de rappels ici et
un ensemble de rappels imbriqués structurés en arborescence ici.
C' est quelque chose que je veux que vous fassiez attention.
Sauvegardons les modifications et allons regarder cette version de notre application.
Pour revenir au terminal,
laissez-moi exécuter l'application.
Alors laissez-moi taper NPM start et nous verrons ce résultat.
Maintenant, à partir de ce résultat, vous pouvez voir que le document est inséré
dans la collection et c'est le document qui a été trouvé.
Dans la deuxième étape,
nous trouvons le document donc lorsque nous appelons le document de recherche DB,
donc c'est le document qui est récupéré de ma collection.
Ensuite, je lui demande de mettre à jour le document avec
ceci et puis vous remarquerez qu'il dit document mis à jour et puis
ici il imprime le résultat ou OPS et il dit N est égal à
un nombre modifié comme un et c'était correct.
Ensuite, il imprime le document mis à jour,
nous trouvons le document mis à jour ici et c'est ce qui est imprimé ici,
et notez en particulier que la description a été mise à jour.
Puis finalement, il a laissé tomber la collection.
Donc, nous voyons comment cette application s'exécute et est capable de faire usage
du module de nœud que nous avons implémenté et ensuite effectué diverses opérations de base de données.
Avec cela, nous complétons cet exercice.
Dans cet exercice, je vous ai montré comment vous interageriez avec
votre serveur MongoDB à partir de votre application de nœud.
Nous avons implémenté notre propre module de noeud ici et l'avons ensuite utilisé
dans notre application de noeud en encapsulant
certaines des opérations de base de données dans ce module de noeud.
C' est le bon moment pour vous de faire un commit Git avec
le nœud de message MongoDB exemple deuxième partie.