Výukový program Node.js MongoDB s příklady

Obsah:

Anonim

Většinou všechny moderní webové aplikace mají v zadní části nějaký systém pro ukládání dat. Například pokud vezmete případ webové nákupní aplikace, data, jako je cena položky, se uloží do databáze.

Rámec Node js může pracovat s databázemi jak s relačními (například Oracle a MS SQL Server), tak s nerelačními databázemi (jako je MongoDB). V tomto tutoriálu uvidíme, jak můžeme používat databáze z aplikací Node js.

V tomto výukovém programu se naučíte

  • Databáze Node.js a NoSQL
  • Pomocí MongoDB a Node.js
  • Jak vytvořit aplikaci Express Express s uzlem pro MongoDB pro ukládání a poskytování obsahu

Databáze Node.js a NoSQL

V průběhu let se databáze NoSQL, jako jsou MongoDB a MySQL, staly velmi populární jako databáze pro ukládání dat. Schopnost těchto databází ukládat jakýkoli typ obsahu, zejména v jakémkoli formátu, je to, co dělá tyto databáze tak slavnými.

Node.js má schopnost pracovat s databázemi MySQL i MongoDB. Chcete-li použít některou z těchto databází, musíte si stáhnout a používat požadované moduly pomocí správce balíčků uzlů.

Pro MySQL se požadovaný modul nazývá „mysql“ a pro použití MongoDB je požadovaný modul, který se má nainstalovat, „Mongoose“.

S těmito moduly můžete v Node.js provádět následující operace

  1. Spravovat sdružování připojení - Zde můžete určit počet připojení k databázi MySQL, které by měl Node.js. udržovat a ukládat.
  2. Vytvořte a zavřete připojení k databázi. V obou případech můžete poskytnout funkci zpětného volání, kterou lze volat, kdykoli jsou provedeny metody připojení „vytvořit“ a „zavřít“.
  3. Lze provést dotazy k získání dat z příslušných databází k načtení dat.
  4. S těmito moduly lze dosáhnout také manipulace s daty, jako je vkládání dat, mazání a aktualizace dat.

U zbývajících témat se podíváme na to, jak můžeme pracovat s databázemi MongoDB v rámci Node.js.

Pomocí MongoDB a Node.js

Jak je popsáno v předchozím tématu, MongoDB je jednou z nejpopulárnějších databází používaných spolu s Node.js.

Během této kapitoly uvidíme

Jak můžeme navázat spojení s databází MongoDB

Jak můžeme provádět běžné operace čtení dat z databáze a také vkládání, mazání a aktualizaci záznamů v databázi MongoDB.

Pro účely této kapitoly předpokládejme, že máme k dispozici níže uvedená data MongoDB.

Název databáze: EmployeeDB

Název sbírky: Zaměstnanec

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. Instalace modulů NPM

Potřebujete ovladač pro přístup k Mongo z aplikace Node. K dispozici je řada ovladačů Mongo, ale MongoDB patří mezi nejoblíbenější. Chcete-li nainstalovat modul MongoDB, spusťte následující příkaz

npm install mongodb

  1. Vytvoření a ukončení připojení k databázi MongoDB. Níže uvedený fragment kódu ukazuje, jak vytvořit a zavřít připojení k databázi MongoDB.

Vysvětlení kódu:

  1. Prvním krokem je zahrnutí mongoose modulu, který se provádí pomocí funkce require. Jakmile je tento modul na místě, můžeme použít nezbytné funkce dostupné v tomto modulu k vytvoření připojení k databázi.
  2. Dále zadáme náš připojovací řetězec k databázi. V připojovacím řetězci jsou předány 3 klíčové hodnoty.
  • První je 'mongodb', který určuje, že se připojujeme k databázi mongoDB.
  • Další je 'localhost', což znamená, že se připojujeme k databázi na místním počítači.
  • Další je 'EmployeeDB', což je název databáze definované v naší databázi MongoDB.
  1. Dalším krokem je skutečné připojení k naší databázi. Funkce připojení přijímá naši adresu URL a umožňuje specifikovat funkci zpětného volání. Zavolá se, když se otevře připojení k databázi. To nám dává příležitost zjistit, zda bylo připojení k databázi úspěšné nebo ne.
  2. Ve funkci píšeme do konzoly řetězec „Spojení navázáno“, které označuje, že bylo vytvořeno úspěšné připojení.
  3. Nakonec spojení ukončujeme pomocí příkazu db.close.

Pokud je výše uvedený kód proveden správně, řetězec „Připojeno“ bude zapsán do konzoly, jak je znázorněno níže.

  1. Dotazování na data v databázi MongoDB - Pomocí ovladače MongoDB můžeme také načíst data z databáze MongoDB.

    Níže uvedená část ukazuje, jak můžeme pomocí ovladače načíst všechny dokumenty z naší kolekce zaměstnanců v naší databázi EmployeeDB. Toto je kolekce v naší databázi MongoDB, která obsahuje všechny dokumenty týkající se zaměstnanců. Každý dokument má ID objektu, jméno zaměstnance a ID zaměstnance k definování hodnot 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);});}); 

Vysvětlení kódu:

  1. V prvním kroku vytváříme kurzor (A cursor is a pointer which is used to point to the various records fetched from a database. The cursor is then used to iterate through the different records in the database. Here we are defining a název proměnné zvaný kurzor, který bude použit k uložení ukazatele na záznamy načtené z databáze.), což ukazuje na záznamy načtené z kolekce MongoDb. Máme také možnost specifikovat kolekci „Zaměstnanec“, ze které se mají načíst záznamy. Funkce find () slouží k určení, že chceme načíst všechny dokumenty z kolekce MongoDB.

  2. Nyní procházíme naším kurzorem a pro každý dokument v kurzoru provedeme funkci.

  3. Naše funkce jednoduše vytiskne obsah každého dokumentu do konzoly.

Poznámka: - Je také možné načíst konkrétní záznam z databáze. Toho lze dosáhnout zadáním podmínky hledání ve funkci find (). Předpokládejme například, že pokud jste chtěli načíst záznam, který má jméno zaměstnance jako Guru99, pak lze tento příkaz napsat následovně

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

Pokud je výše uvedený kód úspěšně proveden, zobrazí se na vaší konzole následující výstup.

Výstup:

Z výstupu

  • Budete jasně vidět, že jsou načteny všechny dokumenty ze sbírky. To je možné pomocí metody find () připojení mongoDB (db) a iterace všemi dokumenty pomocí kurzoru.
  1. Vkládání dokumentů do kolekce - Dokumenty lze vložit do kolekce pomocí metody insertOne poskytované knihovnou MongoDB. Níže uvedený fragment kódu ukazuje, jak můžeme vložit dokument do kolekce 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"});});

Vysvětlení kódu:

  1. Tady používáme metodu insertOne z knihovny MongoDB k vložení dokumentu do kolekce Employee.
  2. Specifikujeme podrobnosti dokumentu o tom, co je třeba vložit do kolekce Zaměstnanec.

Pokud nyní zkontrolujete obsah své databáze MongoDB, najdete záznam s Employeeid 4 a EmployeeName "NewEmployee" vložený do kolekce Employee.

Poznámka: Konzole nebude zobrazovat žádný výstup, protože záznam se vkládá do databáze a nelze zde zobrazit žádný výstup.

Chcete-li zkontrolovat, zda byla data správně vložena do databáze, musíte v MongoDB provést následující příkazy

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

První příkaz zajišťuje, že jste připojeni k databázi EmployeeDb. Druhý příkaz hledá záznam, který má ID zaměstnance 4.

  1. Aktualizace dokumentů v kolekci - Dokumenty lze aktualizovat v kolekci pomocí metody updateOne poskytované knihovnou MongoDB. Níže uvedený fragment kódu ukazuje, jak aktualizovat dokument v kolekci 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"}});});

Vysvětlení kódu:

  1. Zde používáme metodu „updateOne“ z knihovny MongoDB, která se používá k aktualizaci dokumentu v kolekci mongoDB.
  2. Specifikujeme vyhledávací kritéria, které dokumenty je třeba aktualizovat. V našem případě chceme najít dokument, který má název zaměstnance „NewEmployee“.
  3. Poté chceme nastavit hodnotu EmployeeName dokumentu z „NewEmployee“ na „Mohan“.

Pokud nyní zkontrolujete obsah své databáze MongoDB, najdete záznam s Employeeid of 4 a EmployeeName of "Mohan" aktualizovaný v kolekci Employee.

Chcete-li zkontrolovat, zda byla data v databázi správně aktualizována, musíte v MongoDB provést následující příkazy

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

První příkaz zajišťuje, že jste připojeni k databázi EmployeeDb. Druhý příkaz hledá záznam, který má ID zaměstnance 4.

  1. Mazání dokumentů ve sbírce - Dokumenty lze ve sbírce mazat pomocí metody „deleteOne“ poskytované knihovnou MongoDB. Níže uvedený fragment kódu ukazuje, jak odstranit dokument v kolekci mongoDB.

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

Vysvětlení kódu:

  1. Zde používáme metodu „deleteOne“ z knihovny MongoDB, která se používá k odstranění dokumentu v kolekci mongoDB.
  2. Specifikujeme vyhledávací kritéria, z nichž je třeba dokument odstranit. V našem případě chceme najít dokument, který má název zaměstnance „Mohan“, a tento dokument smazat.

Pokud nyní zkontrolujete obsah své databáze MongoDB, najdete záznam s názvem Employeeid 4 a EmployeeName „Mohan“ odstraněným z kolekce Employee.

Chcete-li zkontrolovat, zda byla data v databázi správně aktualizována, musíte v MongoDB provést následující příkazy

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

První příkaz zajišťuje, že jste připojeni k databázi EmployeeDb. Druhý příkaz prohledá a zobrazí všechny záznamy v kolekci zaměstnanců. Zde vidíte, zda byl záznam odstraněn nebo ne.

Jak vytvořit aplikaci Express Express s uzlem pro MongoDB pro ukládání a poskytování obsahu

Vytváření aplikace s kombinací obou použití express a MongoDB je v dnešní době docela běžné.

Při práci s webovými aplikacemi JavaScriptu se obvykle jedná o výraz MEAN stack.

  • Termín MEAN stack označuje soubor technologií založených na JavaScriptu používaných k vývoji webových aplikací.
  • MEAN je zkratka pro MongoDB, ExpressJS, AngularJS a Node.js.

Proto je vždy dobré pochopit, jak Node.js a MongoDB spolupracují na poskytování aplikací, které interagují s back-end databázemi.

Podívejme se na jednoduchý příklad toho, jak můžeme společně používat výrazy „express“ a „MongoDB“. Náš příklad využije stejnou kolekci zaměstnanců v databázi MongoDB EmployeeDB.

Nyní začleníme Express, abychom zobrazili data na naší webové stránce, když si to uživatel vyžádá. Když naše aplikace běží na Node.js, bude pravděpodobně potřeba přejít na adresu URL http: // localhost: 3000 / Employeeid .

Po spuštění stránky se zobrazí všechny ID zaměstnance v kolekci Zaměstnanec. Podívejme se tedy na fragment kódu v částech, které nám to umožní dosáhnout.

Krok 1) Definujte všechny knihovny, které je třeba použít v naší aplikaci, což je v našem případě knihovna MongoDB i express.

Vysvětlení kódu:

  1. Definujeme naši „expresní“ knihovnu, která bude použita v naší aplikaci.
  2. Definujeme naši „expresní“ knihovnu, která bude použita v naší aplikaci pro připojení k naší databázi MongoDB.
  3. Zde definujeme URL naší databáze, ke které se máme připojit.
  4. Nakonec definujeme řetězec, který bude použit k uložení naší kolekce ID zaměstnanců, které je třeba později zobrazit v prohlížeči.

Krok 2) V tomto kroku nyní získáme všechny záznamy v naší kolekci „Zaměstnanec“ a podle toho s nimi budeme pracovat.

Vysvětlení kódu:

  1. Vytváříme cestu k naší aplikaci s názvem „Employeeid“. Takže kdykoli kdokoli prohlédne web http: // localhost: 3000 / Employeeid naší aplikace, bude proveden fragment kódu definovaný pro tuto trasu.
  2. Zde získáváme všechny záznamy v naší kolekci „Zaměstnanec“ prostřednictvím příkazu db.collection („Zaměstnanec“). Find (). Tuto kolekci pak přiřadíme proměnné zvané kurzor. Pomocí této proměnné kurzoru budeme moci procházet všechny záznamy sbírky.
  3. Nyní používáme funkci cursor.each () k procházení všech záznamů naší sbírky. Pro každý záznam budeme definovat fragment kódu, co dělat, když je přístup ke každému záznamu.
  4. Nakonec vidíme, že pokud vrácený záznam nemá hodnotu null, bereme zaměstnance pomocí příkazu „item.Employeeid“. Zbytek kódu je pouze konstrukce správného kódu HTML, který umožní správné zobrazení našich výsledků v prohlížeči.

Krok 3) V tomto kroku pošleme náš výstup na webovou stránku a necháme naši aplikaci naslouchat na konkrétním portu.

Vysvětlení kódu:

  1. Zde posíláme celý obsah, který byl vytvořen v předchozím kroku, na naši webovou stránku. Parametr „res“ nám umožňuje odeslat obsah na naši webovou stránku jako odpověď.
  2. Děláme naslouchat celou naši aplikaci Node.js na portu 3000.

Výstup:

Z výstupu

  • Jasně ukazuje, že byla načtena všechna čísla zaměstnanců v kolekci Zaměstnanec. Důvodem je, že k připojení k databázi a načítání všech záznamů zaměstnanců používáme ovladač MongoDB a následně jsme k zobrazení záznamů použili výraz „express“.

Zde je kód pro vaši referenci

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 být zastaralý na základě verze vašeho ovladače MongoDB. Můžete přidat // noinspection JSDeprecatedSymbols před cursor.each, abyste problém obešli. Případně můžete použít pro každý. Níže je ukázkový kód používající 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() {});

souhrn

  • Node.js se používá ve spojení s databázemi NoSQL k vytváření mnoha moderních webových aplikací. Některé z běžně používaných databází jsou MySQL a MongoDB.
  • Jedním z běžných modulů používaných pro práci s databázemi MongoDB je modul s názvem „MongoDB“. Tento modul se instaluje pomocí správce balíčků uzlů.
  • S modulem MongoDB je možné vyhledávat záznamy v kolekci a provádět běžné operace aktualizace, mazání a vkládání.
  • A konečně, jednou z moderních praktik je použití expresního rozhraní spolu s MongoDB k poskytování moderních aplikací. Express framework může využívat data vrácená ovladačem MongoDB a odpovídajícím způsobem zobrazit data uživateli na webové stránce.