Výukový program Node.js MongoDB s príkladmi

Obsah:

Anonim

Väčšinou všetky moderné webové aplikácie majú na konci nejaký systém na ukladanie údajov. Napríklad, ak vezmete do úvahy aplikáciu na nakupovanie cez web, do databázy sa uložia údaje, ako je cena položky.

Rámec Node js môže pracovať s databázami s relačnými (napríklad Oracle a MS SQL Server) aj nerelačnými databázami (napríklad MongoDB). V tomto tutoriáli uvidíme, ako môžeme používať databázy z aplikácií Node js.

V tomto návode sa naučíte

  • Databázy Node.js a NoSQL
  • Používanie MongoDB a Node.js
  • Ako zostaviť aplikáciu node express s MongoDB na ukladanie a poskytovanie obsahu

Databázy Node.js a NoSQL

V priebehu rokov sa NoSQL databázy ako MongoDB a MySQL stali veľmi populárnymi ako databázy na ukladanie údajov. To, čo robí tieto databázy tak slávnymi, je schopnosť týchto databáz ukladať akýkoľvek typ obsahu a najmä v akomkoľvek formáte.

Node.js má schopnosť pracovať s MySQL aj MongoDB ako s databázami. Aby ste mohli používať ktorúkoľvek z týchto databáz, musíte si stiahnuť a použiť požadované moduly pomocou správcu balíkov Node.

Pre MySQL sa požadovaný modul nazýva „mysql“ a pre použitie MongoDB je požadovaný modul, ktorý sa má nainštalovať, „Mongoose“.

S týmito modulmi môžete v Node.js vykonávať nasledujúce operácie

  1. Spravujte združovanie pripojení - tu môžete určiť počet pripojení k databáze MySQL, ktoré by mal server Node.js. udržiavať a ukladať.
  2. Vytvorte a zatvorte pripojenie k databáze. V obidvoch prípadoch môžete poskytnúť funkciu spätného volania, ktorú je možné zavolať vždy, keď sa vykonajú metódy pripojenia „vytvoriť“ a „zavrieť“.
  3. Je možné vykonať dotazy na získanie údajov z príslušných databáz na získanie údajov.
  4. S týmito modulmi je možné dosiahnuť aj manipuláciu s údajmi, ako je vkladanie údajov, mazanie a aktualizácia údajov.

V zostávajúcich témach sa pozrieme na to, ako môžeme pracovať s databázami MongoDB v rámci Node.js.

Používanie MongoDB a Node.js

Ako už bolo spomenuté v predchádzajúcej téme, MongoDB je jednou z najpopulárnejších databáz používaných spolu s Node.js.

Počas tejto kapitoly uvidíme

Ako môžeme nadviazať spojenie s databázou MongoDB

Ako môžeme vykonávať bežné operácie čítania údajov z databázy a tiež vkladania, mazania a aktualizácie záznamov v databáze MongoDB.

Na účely tejto kapitoly predpokladajme, že máme pripravené nižšie uvedené údaje MongoDB.

Názov databázy: EmployeeDB

Názov zbierky: Zamestnanec

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. Inštalácia modulov NPM

Na prístup k Mongu z aplikácie Node potrebujete ovládač. K dispozícii je množstvo ovládačov Mongo, ale MongoDB patrí medzi najobľúbenejšie. Ak chcete nainštalovať modul MongoDB, spustite nasledujúci príkaz

npm install mongodb

  1. Vytvorenie a ukončenie pripojenia k databáze MongoDB. Nasledujúci úryvok kódu ukazuje, ako vytvoriť a uzavrieť pripojenie k databáze MongoDB.

Vysvetlenie kódu:

  1. Prvým krokom je zahrnutie mongoose modulu, ktorý sa vykonáva pomocou funkcie require. Keď je tento modul zavedený, môžeme pomocou potrebných funkcií dostupných v tomto module vytvoriť pripojenia k databáze.
  2. Ďalej zadáme náš pripojovací reťazec k databáze. V pripojovacom reťazci sú odovzdané 3 kľúčové hodnoty.
  • Prvý je „mongodb“, ktorý špecifikuje, že sa pripájame k databáze mongoDB.
  • Ďalším je „localhost“, čo znamená, že sa pripájame k databáze na lokálnom počítači.
  • Ďalším je „EmployeeDB“, čo je názov databázy definovanej v našej databáze MongoDB.
  1. Ďalším krokom je skutočné pripojenie k našej databáze. Funkcia pripojenia zaberá našu adresu URL a umožňuje špecifikovať funkciu spätného volania. Zavolá sa, keď sa otvorí pripojenie k databáze. To nám dáva príležitosť zistiť, či bolo pripojenie k databáze úspešné alebo nie.
  2. Vo funkcii píšeme do konzoly reťazec „Spojenie nadviazané“, ktoré označuje, že bolo vytvorené úspešné pripojenie.
  3. Nakoniec uzatvárame spojenie pomocou príkazu db.close.

Ak je vyššie uvedený kód vykonaný správne, do konzoly sa napíše reťazec „Pripojené“, ako je uvedené nižšie.

  1. Dotaz na údaje v databáze MongoDB - Pomocou ovládača MongoDB môžeme tiež načítať údaje z databázy MongoDB.

    V nasledujúcej časti sa dozvieme, ako môžeme pomocou ovládača načítať všetky dokumenty z našej zbierky Employee v našej databáze EmployeeDB. Toto je kolekcia v našej databáze MongoDB, ktorá obsahuje všetky dokumenty týkajúce sa zamestnancov. Každý dokument má ID objektu, meno zamestnanca a ID zamestnanca, ktoré definujú hodnoty dokumentu.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {var cursor = db.collection('Employee').find();cursor.each(function(err, doc) {console.log(doc);});}); 

Vysvetlenie kódu:

  1. V prvom kroku vytvoríme kurzor (Kurzor je ukazovateľ, ktorý sa používa na ukazovanie na rôzne záznamy načítané z databázy. Kurzor sa potom použije na iteráciu rôznych záznamov v databáze. Tu definujeme a názov premennej nazývaný kurzor, ktorý sa použije na uloženie ukazovateľa na záznamy načítané z databázy.), ktoré smerujú na záznamy načítané z kolekcie MongoDb. Máme tiež možnosť určiť kolekciu „Zamestnanec“, z ktorej sa majú načítať záznamy. Funkcia find () slúži na určenie, že chceme získať všetky dokumenty zo zbierky MongoDB.

  2. Teraz prechádzame našim kurzorom a pre každý dokument v kurzore vykonáme funkciu.

  3. Naša funkcia jednoducho vytlačí obsah každého dokumentu na konzolu.

Poznámka: - Je tiež možné načítať konkrétny záznam z databázy. To je možné vykonať zadaním podmienky vyhľadávania vo funkcii find (). Predpokladajme napríklad, že ak ste chceli iba načítať záznam, ktorý má meno zamestnanca ako Guru99, potom môže byť tento príkaz napísaný nasledovne

var cursor=db.collection('Employee').find({EmployeeName: "guru99"})

Ak sa vyššie uvedený kód úspešne vykoná, na konzole sa zobrazí nasledujúci výstup.

Výkon:

Z výstupu

  • Budete jasne vidieť, že sa načítajú všetky dokumenty zo zbierky. To je možné pomocou metódy find () spojenia mongoDB (db) a iterácie cez všetky dokumenty pomocou kurzora.
  1. Vkladanie dokumentov do zbierky - Dokumenty je možné vkladať do zbierky pomocou metódy insertOne, ktorú poskytuje knižnica MongoDB. Nasledujúci úryvok kódu ukazuje, ako môžeme vložiť dokument do zbierky mongoDB.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').insertOne({Employeeid: 4,EmployeeName: "NewEmployee"});});

Vysvetlenie kódu:

  1. Tu používame metódu insertOne z knižnice MongoDB na vloženie dokumentu do kolekcie Employee.
  2. Upresňujeme podrobnosti dokumentu, čo je potrebné vložiť do zbierky Zamestnanec.

Ak teraz skontrolujete obsah svojej databázy MongoDB, nájdete záznam s číslom Employeeid of 4 a EmployeeName „NewEmployee“ vloženým do kolekcie Employee.

Poznámka: Konzola nebude zobrazovať žiadny výstup, pretože záznam sa vkladá do databázy a tu nie je možné zobraziť žiadny výstup.

Aby ste skontrolovali, či sú údaje správne vložené do databázy, musíte v MongoDB vykonať nasledujúce príkazy

  1. Použite EmployeeDB
  2. db.Employee.find ({Employeeid: 4})

Prvé vyhlásenie zaručuje, že ste pripojení k databáze EmployeeDb. Druhý príkaz vyhľadáva záznam, ktorý má ID zamestnanca 4.

  1. Aktualizácia dokumentov v zbierke - Dokumenty je možné aktualizovať v zbierke pomocou metódy updateOne, ktorú poskytuje knižnica MongoDB. Fragment kódu nižšie ukazuje, ako aktualizovať dokument v zbierke mongoDB.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').updateOne({"EmployeeName": "NewEmployee"}, {$set: {"EmployeeName": "Mohan"}});});

Vysvetlenie kódu:

  1. Tu používame metódu „updateOne“ z knižnice MongoDB, ktorá sa používa na aktualizáciu dokumentu v zbierke mongoDB.
  2. Zadávame kritériá vyhľadávania, ktoré dokumenty je potrebné aktualizovať. V našom prípade chceme nájsť dokument, ktorý má názov zamestnanca „NewEmployee“.
  3. Potom chceme nastaviť hodnotu EmployeeName dokumentu z „NewEmployee“ na „Mohan“.

Ak teraz skontrolujete obsah svojej databázy MongoDB, v zbierke Employeeid nájdete záznam s číslom Employeeid of 4 a EmployeeName „Mohan“.

Ak chcete skontrolovať, či boli údaje v databáze správne aktualizované, musíte v MongoDB vykonať nasledujúce príkazy

  1. Použite EmployeeDB
  2. db.Employee.find ({Employeeid: 4})

Prvé vyhlásenie zaručuje, že ste pripojení k databáze EmployeeDb. Druhý príkaz vyhľadáva záznam, ktorý má ID zamestnanca 4.

  1. Mazanie dokumentov v zbierke - Dokumenty je možné v zbierke mazať metódou „deleteOne“, ktorú poskytuje knižnica MongoDB. Nasledujúci útržok kódu ukazuje, ako odstrániť dokument v zbierke mongoDB.

var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').deleteOne({"EmployeeName": "Mohan"});});

Vysvetlenie kódu:

  1. Tu používame metódu „deleteOne“ z knižnice MongoDB, ktorá sa používa na odstránenie dokumentu v zbierke mongoDB.
  2. Zadávame kritériá vyhľadávania, z ktorých je potrebné dokument odstrániť. V našom prípade chceme nájsť dokument, ktorý má meno zamestnanca „Mohan“, a tento dokument odstrániť.

Ak teraz skontrolujete obsah svojej databázy MongoDB, nájdete záznam s označením Employeeid of 4 a EmployeeName „Mohan“ odstránený z kolekcie Employee.

Ak chcete skontrolovať, či boli údaje v databáze správne aktualizované, musíte v MongoDB vykonať nasledujúce príkazy

  1. Použite EmployeeDB
  2. db.Employee.find ()

Prvé vyhlásenie zaručuje, že ste pripojení k databáze EmployeeDb. Druhý výpis prehľadáva a zobrazuje všetky záznamy v zbierke zamestnancov. Tu uvidíte, či bol záznam vymazaný alebo nie.

Ako zostaviť aplikáciu node express s MongoDB na ukladanie a poskytovanie obsahu

Budovanie aplikácie s kombináciou oboch spôsobov použitia expresných a MongoDB je v dnešnej dobe úplne bežné.

Pri práci s webovými aplikáciami JavaScriptu tu zvyčajne bude jeden výraz MEAN stack.

  • Termín MEAN stack označuje skupinu technológií založených na JavaScripte používaných na vývoj webových aplikácií.
  • MEAN je skratka pre MongoDB, ExpressJS, AngularJS a Node.js.

Preto je vždy dobré pochopiť, ako Node.js a MongoDB spolupracujú na poskytovaní aplikácií, ktoré interagujú s backendovými databázami.

Pozrime sa na jednoduchý príklad toho, ako môžeme spoločne používať výrazy „express“ a „MongoDB“. Náš príklad využije rovnakú kolekciu zamestnancov v databáze MongoDB EmployeeDB.

Teraz začleníme Express na zobrazenie údajov na našej webovej stránke, keď to vyžaduje užívateľ. Keď je naša aplikácia spustená na serveri Node.js, bude pravdepodobne potrebné prejsť na adresu URL http: // localhost: 3000 / Employeeid .

Po spustení stránky sa zobrazia všetky id zamestnancov v kolekcii Employee. Pozrime sa teda na útržok kódu v častiach, ktoré nám to umožnia dosiahnuť.

Krok 1) Definujte všetky knižnice, ktoré je potrebné použiť v našej aplikácii, čo je v našom prípade knižnica MongoDB aj expresná knižnica.

Vysvetlenie kódu:

  1. Definujeme našu „expresnú“ knižnicu, ktorá bude použitá v našej aplikácii.
  2. Definujeme našu „expresnú“ knižnicu, ktorá sa použije v našej aplikácii na pripojenie k našej databáze MongoDB.
  3. Tu definujeme URL našej databázy, ku ktorej sa chceme pripojiť.
  4. Na záver definujeme reťazec, ktorý sa použije na uloženie našej zbierky identifikácie zamestnanca, ktorú je potrebné neskôr zobraziť v prehliadači.

Krok 2) V tomto kroku teraz získame všetky záznamy v našej zbierke „Zamestnanec“ a podľa toho s nimi budeme pracovať.

Vysvetlenie kódu:

  1. Vytvárame cestu k našej aplikácii s názvom „Employeeid“. Takže kedykoľvek ktokoľvek prehľadá web http: // localhost: 3000 / Employeeid našej aplikácie, bude vykonaný fragment kódu definovaný pre túto cestu.
  2. Tu dostávame všetky záznamy v našej zbierke „Zamestnanec“ prostredníctvom príkazu db.collection („Zamestnanec“). Find (). Túto kolekciu potom priraďujeme k premennej nazývanej kurzor. Pomocou tejto premennej kurzora budeme schopní prechádzať všetky záznamy zbierky.
  3. Teraz používame funkciu cursor.each () na prechádzanie všetkými záznamami našej zbierky. Pre každý záznam ideme definovať útržok kódu, čo robiť, keď sa ku každému záznamu dostane.
  4. Nakoniec vidíme, že ak vrátený záznam nie je nulový, potom zamestnanca vezmeme pomocou príkazu „item.Employeeid“. Zvyšok kódu je iba konštrukcia správneho kódu HTML, ktorý umožní správne zobrazenie našich výsledkov v prehliadači.

Krok 3) V tomto kroku pošleme náš výstup na webovú stránku a necháme našu aplikáciu počúvať na konkrétnom porte.

Vysvetlenie kódu:

  1. Tu posielame celý obsah, ktorý bol vytvorený v predchádzajúcom kroku, na našu webovú stránku. Parameter „res“ nám umožňuje odoslať obsah na našu webovú stránku ako odpoveď.
  2. Celú našu aplikáciu Node.js robíme počúvať na porte 3000.

Výkon:

Z výstupu

  • Jasne to ukazuje, že boli zhromaždené všetky identifikácie zamestnancov v zbierke Employee. Je to tak preto, že na pripojenie k databáze a načítanie všetkých záznamov zamestnancov používame ovládač MongoDB a na ich zobrazenie sme následne použili výraz „express“.

Tu je kód pre vašu referenciu

var express = require('express');var app = express();var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';var str = "";app.route('/Employeeid').get(function(req, res){MongoClient.connect(url, function(err, db) {var cursor = db.collection('Employee').find();//noinspection JSDeprecatedSymbolscursor.each(function(err, item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "
";}});res.send(str);db.close();});});var server = app.listen(3000, function() {});

Poznámka: cursor.each môže byť zastaraný na základe verzie vášho ovládača MongoDB. Pred cursor.each môžete pridať // noinspection JSDeprecatedSymbols, aby ste obišli problém. Prípadne môžete použiť pre každý. Nižšie je uvedený ukážkový kód využívajúci forEach

var express = require('express');var app = express();var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';var str = "";app.route('/Employeeid').get(function(req, res) {MongoClient.connect(url, function(err, db) {var collection = db.collection('Employee');var cursor = collection.find({});str = "";cursor.forEach(function(item) {if (item != null) {str = str + " Employee id " + item.Employeeid + "
";}}, function(err) {res.send(err);db.close();});});});var server = app.listen(8080, function() {});

Zhrnutie

  • Node.js sa používa v spojení s databázami NoSQL na vytváranie mnohých moderných webových aplikácií. Niektoré z bežných používaných databáz sú MySQL a MongoDB.
  • Jedným z bežných modulov používaných pri práci s databázami MongoDB je modul s názvom „MongoDB“. Tento modul sa inštaluje cez správcu balíkov uzlov.
  • Pomocou modulu MongoDB je možné vyhľadávať záznamy v kolekcii a vykonávať bežné operácie aktualizácie, mazania a vkladania.
  • A nakoniec, jednou z moderných praktík je použitie expresného rámca spolu s MongoDB na poskytovanie moderných aplikácií. Rámec Express môže využívať dáta vrátené ovládačom MongoDB a podľa toho zobrazovať dáta používateľovi na webovej stránke.