Node.js MongoDB bemutató példákkal

Tartalomjegyzék:

Anonim

Leginkább az összes modern webes alkalmazás rendelkezik valamilyen adattároló rendszerrel a háttérrendszerben. Például, ha egy internetes vásárlási alkalmazást veszünk figyelembe, akkor az adatok, például egy ár ára, az adatbázisban tárolódnak.

A Node js keretrendszer működhet mind relációs (például Oracle és MS SQL Server), mind nem relációs (például MongoDB) adatbázisokkal. Ebben az oktatóanyagban megnézzük, hogyan használhatjuk a Node js alkalmazásokon belüli adatbázisokat.

Ebben az oktatóanyagban megtanulja-

  • Node.js és NoSQL adatbázisok
  • A MongoDB és a Node.js használata
  • Hogyan készítsünk egy csomópont expressz alkalmazást a MongoDB-vel a tartalom tárolására és kiszolgálására

Node.js és NoSQL adatbázisok

Az évek során olyan NoSQL adatbázisok, mint a MongoDB és a MySQL, meglehetősen népszerűvé váltak, mint adatbázisok az adatok tárolására. Ezeknek az adatbázisoknak az a képessége, hogy bármilyen típusú tartalmat tároljon, különösen bármilyen formátumban, ilyen híressé teszi ezeket az adatbázisokat.

A Node.js képes a MySQL és a MongoDB adatbázisként egyaránt dolgozni. Ezen adatbázisok bármelyikének használatához le kell töltenie és fel kell használnia a szükséges modulokat a Node csomagkezelő segítségével.

A MySQL esetében a szükséges modult "mysql" -nek hívják, a MongoDB használatához pedig a "Mongoose" -ot kell telepíteni.

Ezekkel a modulokkal a következő műveleteket hajthatja végre a Node.js fájlban

  1. A kapcsolatkészlet kezelése - Itt adhatja meg a MySQL adatbázis-kapcsolatok számát, amelyeket a Node.js által kell fenntartani és menteni.
  2. Hozzon létre és zárjon kapcsolatot egy adatbázissal. Mindkét esetben biztosíthat visszahívási funkciót, amely akkor hívható meg, amikor a "létrehozás" és a "bezárás" kapcsolati módszerek végrehajtásra kerülnek.
  3. Lekérdezések hajthatók végre az adatok lekéréséhez a megfelelő adatbázisokból.
  4. Ezekkel a modulokkal az adatkezelés, például az adatok beillesztése, törlése és frissítése is elérhető.

A fennmaradó témakörökben megnézzük, hogyan működhetünk a Nong.js-en belüli MongoDB adatbázisokkal.

A MongoDB és a Node.js használata

Amint azt a korábbi témakörben említettük, a MongoDB az egyik legnépszerűbb adatbázis, amelyet a Node.js mellett használnak.

E fejezet alatt meglátjuk

Hogyan lehet kapcsolatot létesíteni egy MongoDB adatbázissal

Hogyan tudjuk végrehajtani az adatbázisból származó adatok kiolvasásának, valamint a rekordok MongoDB adatbázisba történő beillesztésének, törlésének és frissítésének szokásos műveleteit.

Tegyük fel, hogy e fejezet alkalmazásában az alábbi MongoDB adatok vannak a helyükön.

Adatbázis neve: EmployeeDB

Gyűjtemény neve: Alkalmazott

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. Az NPM modulok telepítése

A Mongo eléréséhez egy Node alkalmazásból illesztőprogramra van szükség. Számos Mongo illesztőprogram áll rendelkezésre, de a MongoDB a legnépszerűbbek közé tartozik. A MongoDB modul telepítéséhez futtassa az alábbi parancsot

npm telepítse a mongodb-t

  1. Kapcsolat létrehozása és lezárása egy MongoDB adatbázishoz. Az alábbi kódrészlet bemutatja, hogyan lehet kapcsolatot létrehozni és lezárni egy MongoDB adatbázissal.

Kód Magyarázat:

  1. Az első lépés a mongúz modul beépítése, amelyet a szükséges funkcióval hajtanak végre. Miután ez a modul a helyén van, felhasználhatjuk a modulban elérhető szükséges funkciókat az adatbázishoz való kapcsolatok létrehozásához.
  2. Ezután megadjuk az adatbázishoz való kapcsolati karakterláncunkat. A connect karaktersorozatban 3 kulcsérték van átadva.
  • Az első a 'mongodb', amely meghatározza, hogy egy mongoDB adatbázishoz kapcsolódunk.
  • A következő a „localhost”, ami azt jelenti, hogy a helyi gép adatbázisához csatlakozunk.
  • A következő az 'EmployeeDB', amely a MongoDB adatbázisunkban definiált adatbázis neve.
  1. A következő lépés az, hogy valóban csatlakozzon az adatbázisunkhoz. A connect funkció beírja az URL-jünket, és megadhatja a visszahívási funkciót. Akkor hívják meg, amikor a kapcsolat megnyílik az adatbázissal. Ez lehetőséget ad arra, hogy megtudjuk, az adatbázis-kapcsolat sikeres volt-e vagy sem.
  2. A függvényben a "Kapcsolat létre" szöveget írjuk a konzolra, jelezve, hogy sikeres kapcsolat jött létre.
  3. Végül lezárjuk a kapcsolatot a db.close utasítással.

Ha a fenti kódot megfelelően hajtják végre, akkor a "Csatlakoztatva" karakterlánc beírásra kerül a konzolra, az alábbiak szerint.

  1. Adatok lekérdezése MongoDB adatbázisban - A MongoDB illesztőprogram segítségével adatokat is lekérhetünk a MongoDB adatbázisból.

    Az alábbi szakasz megmutatja, hogyan használhatjuk az illesztőprogramot az összes dokumentum lekérésére az EmployeeDB adatbázisunkban lévő Employee gyűjteményből . Ez a gyűjtemény a MongoDB adatbázisunkban, amely tartalmazza az összes alkalmazottal kapcsolatos dokumentumot. Minden dokumentum rendelkezik objektum azonosítóval, alkalmazott nevével és alkalmazott azonosítóval a dokumentum értékeinek meghatározásához.

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);});}); 

Kód Magyarázat:

  1. Az első lépésben létrehozunk egy kurzort (A kurzor egy mutató, amely az adatbázisból beolvasott különféle rekordokra mutat. Ezután a kurzort az adatbázis különböző rekordjainak iterációjára használják. Itt definiálunk egy kurzor nevű változónév, amelyet a mutató tárolására használnak az adatbázisból letöltött rekordokhoz.), amely a MongoDb gyűjteményből behozott rekordokra mutat. Lehetőségünk van megadni az „Alkalmazott” gyűjteményt is, ahonnan a rekordokat be kell szerezni. A find () függvény segítségével megadhatjuk, hogy az összes dokumentumot be akarjuk-e szerezni a MongoDB gyűjteményből.

  2. Most iterálunk a kurzorunkon keresztül, és a kurzor minden egyes dokumentumához végrehajtunk egy függvényt.

  3. Funkciónk egyszerűen kinyomtatja az egyes dokumentumok tartalmát a konzolra.

Megjegyzés: - Lehetséges egy adott rekord beolvasása is egy adatbázisból. Ezt úgy tehetjük meg, hogy megadjuk a keresési feltételt a find () függvényben. Tegyük fel például, hogy ha csak be szeretné szerezni azt a rekordot, amelynek az alkalmazott neve Guru99, akkor ez az utasítás a következőképpen írható

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

A fenti kód sikeres végrehajtása esetén a következő kimenet jelenik meg a konzolon.

Kimenet:

A kimenetből

  • Világosan láthatja, hogy a gyűjtemény összes dokumentuma lekérésre került. Ez a mongoDB kapcsolat (db) find () metódusának használatával lehetséges, és az összes dokumentumot a kurzor segítségével iterálni.
  1. Dokumentumok beszúrása egy gyűjteménybe - A dokumentumok a gyűjteménybe illeszthetők a MongoDB könyvtár által biztosított insertOne módszerrel. Az alábbi kódrészlet megmutatja, hogyan illeszthetünk be egy dokumentumot egy mongoDB gyűjteménybe.

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

Kód Magyarázat:

  1. Itt a MongoDB könyvtárból származó insertOne metódust használjuk egy dokumentum beszúrására az Employee gyűjteménybe.
  2. Meghatározzuk a dokumentum részleteit, hogy mit kell beilleszteni az Alkalmazottak gyűjteményébe.

Ha most ellenőrzi MongoDB adatbázisának tartalmát, akkor az Employee gyűjteménybe beírja a 4-es Employeeid és az "NewEmployee" EmployeeName rekordot.

Megjegyzés: A konzol nem jelenít meg kimenetet, mert a rekordot beillesztik az adatbázisba, és itt nem lehet kimenetet megjeleníteni.

Annak ellenőrzéséhez, hogy az adatok megfelelően lettek-e behelyezve az adatbázisba, a következő parancsokat kell végrehajtania a MongoDB-ben

  1. Használja az EmployeeDB alkalmazást
  2. db.Employee.find ({Employeeid: 4})

Az első utasítás biztosítja, hogy csatlakozzon az EmployeeDb adatbázishoz. A második utasítás azt a rekordot keresi, amelynek a személyi azonosítója 4.

  1. Dokumentumok frissítése egy gyűjteményben - A dokumentumok egy gyűjteményben frissíthetők a MongoDB könyvtár által biztosított updateOne módszerrel. Az alábbi kódrészlet bemutatja, hogyan frissítheti a mongoDB-gyűjteményben lévő dokumentumot.

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"}});});

Kód Magyarázat:

  1. Itt a MongoDB könyvtár "updateOne" módszerét használjuk, amelyet egy mongoDB gyűjteményben lévő dokumentum frissítésére használunk.
  2. Meghatározzuk a frissíteni kívánt dokumentum keresési feltételeit. Esetünkben meg akarjuk találni azt a dokumentumot, amelynek EmployeeName neve "NewEmployee".
  3. Ezután meg akarjuk állítani a dokumentum EmployeeName értékét "NewEmployee" -ról "Mohan" -ra.

Ha most megnézi a MongoDB adatbázisának tartalmát, akkor az Employee gyűjteményben megtalálhatja a 4-es Employeeid és a "Mohan" EmployeeName rekordot.

Annak ellenőrzéséhez, hogy az adatok megfelelően frissültek-e az adatbázisban, a következő parancsokat kell végrehajtania a MongoDB-ben

  1. Használja az EmployeeDB alkalmazást
  2. db.Employee.find ({Employeeid: 4})

Az első utasítás biztosítja, hogy csatlakozzon az EmployeeDb adatbázishoz. A második utasítás azt a rekordot keresi, amelynek a személyi azonosítója 4.

  1. Dokumentumok törlése egy gyűjteményből - A dokumentumok törölhetők egy gyűjteményből a MongoDB könyvtár által biztosított "deleteOne" módszerrel. Az alábbi kódrészlet bemutatja, hogyan lehet törölni egy dokumentumot a mongoDB gyűjteményből.

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

Kód Magyarázat:

  1. Itt a "deleteOne" metódust használjuk a MongoDB könyvtárból, amelyet egy mongoDB gyűjteményben lévő dokumentum törlésére használunk.
  2. Meghatározzuk, hogy mely dokumentumokat kell törölni. Esetünkben meg akarjuk találni azt a dokumentumot, amelynek EmployeeName neve "Mohan", és törölni kell ezt a dokumentumot.

Ha most ellenőrzi MongoDB adatbázisának tartalmát, akkor az Employee gyűjteményből törli a 4-es Employeeid és a "Mohan" EmployeeName rekordot.

Annak ellenőrzéséhez, hogy az adatok megfelelően frissültek-e az adatbázisban, a következő parancsokat kell végrehajtania a MongoDB-ben

  1. Használja az EmployeeDB alkalmazást
  2. db.Employee.find ()

Az első utasítás biztosítja, hogy csatlakozzon az EmployeeDb adatbázishoz. A második utasítás az alkalmazottak gyűjteményében található összes rekordot keresi és jeleníti meg. Itt láthatja, hogy a rekordot törölték-e vagy sem.

Hogyan készítsünk egy csomópont expressz alkalmazást a MongoDB-vel a tartalom tárolására és kiszolgálására

Manapság meglehetősen elterjedt egy alkalmazás építése az expressz és a MongoDB kombinációjával.

Ha JavaScript webalapú alkalmazásokkal dolgozik, akkor itt általában a MEAN stack kifejezés szerepel.

  • A MEAN stack kifejezés a webalapú alkalmazások fejlesztésére használt JavaScript alapú technológiák gyűjteményére utal.
  • A MEAN a MongoDB, az ExpressJS, az AngularJS és a Node.js rövidítése.

Ezért mindig jó megérteni, hogy a Node.js és a MongoDB hogyan működnek együtt olyan alkalmazások kézbesítésében, amelyek kölcsönhatásba lépnek a háttér-adatbázisokkal.

Nézzünk meg egy egyszerű példát arra, hogyan használhatjuk együtt az "expressz" és a "MongoDB" szót. Példánk a MongoDB EmployeeDB adatbázis ugyanazon Employee gyűjteményét fogja felhasználni.

Most beépítjük az Express-t az adatok megjelenítésére a weboldalunkon, amikor a felhasználó kéri. Amikor alkalmazásunk a Node.js fájlon fut, előfordulhat, hogy a http: // localhost: 3000 / Employeeid URL-re kell böngészni .

Az oldal indításakor az Alkalmazottak gyűjteményben szereplő összes alkalmazott azonosító megjelenik. Lássuk tehát a kódrészletet a szakaszokban, amelyek lehetővé teszik számunkra ennek elérését.

1. lépés: Adja meg az alkalmazásunkban használandó összes könyvtárat, amely esetünkben mind a MongoDB, mind az expressz könyvtár.

Kód Magyarázat:

  1. Meghatározzuk az expressz könyvtárunkat, amelyet az alkalmazásunkban használunk.
  2. Meghatározzuk az „expressz” könyvtárunkat, amelyet az alkalmazásunk használ a MongoDB adatbázisunkhoz való csatlakozáshoz.
  3. Itt definiáljuk az adatbázisunk URL-jét, amelyhez csatlakozni szeretnénk.
  4. Végül meghatározunk egy karakterláncot, amelyet a munkavállalói azonosító gyűjteményünk tárolására használunk, és amelyeket később a böngészőben meg kell jeleníteni.

2. lépés) Ebben a lépésben most megszerezzük az „Alkalmazottak” gyűjteményünk összes rekordját, és ennek megfelelően dolgozunk velük.

Kód Magyarázat:

  1. Útvonalat készítünk alkalmazásunkhoz, „Employeeid” néven. Tehát, amikor bárki böngészi az alkalmazásunk http: // localhost: 3000 / Employeeid webhelyét , az ehhez az útvonalhoz definiált kódrészlet kerül végrehajtásra.
  2. Itt a db.collection ('Alkalmazott'). Find () paranccsal kapjuk meg az 'Employee' gyűjtemény összes rekordját. Ezután hozzárendeljük ezt a gyűjteményt egy kurzor nevű változóhoz. Ennek a kurzor változónak a használatával képesek leszünk böngészni a gyűjtemény összes rekordját.
  3. Most a cursor.each () függvénnyel navigálunk gyűjteményünk összes rekordjában. Minden rekordhoz meghatározunk egy kódrészletet arról, hogy mit kell tennünk, amikor minden rekordot elérünk.
  4. Végül azt látjuk, hogy ha a visszaküldött rekord nem null, akkor az "item.Employeeid" paranccsal vesszük át az alkalmazottat. A kód többi része csak egy megfelelő HTML-kód létrehozása, amely lehetővé teszi az eredményeink megfelelő megjelenítését a böngészőben.

3. lépés: Ebben a lépésben el fogjuk küldeni a kimenetünket a weboldalra, és alkalmazásunkat hallgatni fogjuk egy adott porton.

Kód Magyarázat:

  1. Itt elküldjük a weboldalunkra a korábbi lépésben elkészített teljes tartalmat. A 'res' paraméter lehetővé teszi számunkra, hogy válaszként tartalmat küldjünk weboldalunkra.
  2. A teljes Node.js alkalmazást hallgatni akarjuk a 3000-es porton.

Kimenet:

A kimenetből

  • Ez egyértelműen megmutatja, hogy az Employee gyűjtemény összes alkalmazottja lekérésre került. Ennek oka az, hogy a MongoDB illesztőprogram segítségével csatlakozzunk az adatbázishoz, és lekérjük az összes Employee rekordot, majd ezt követően az "express" szót használtuk a rekordok megjelenítésére.

Itt található a hivatkozás kódja

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() {});

Megjegyzés: A cursor.each valószínűleg elavult a MongoDB illesztőprogram verziója alapján. A probléma kijátszásához hozzáadhatja a // noinspection JSDeprecatedSymbols szót a cursor.each elé. Alternatív megoldásként használhatja a forEach-t is. Az alábbiakban a forEach-t használó mintakód található

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() {});

Összegzés

  • A Node.js-t a NoSQL adatbázisokkal együtt használják számos modern webalkalmazás felépítésére. Néhány használt adatbázis a MySQL és a MongoDB.
  • A MongoDB adatbázisokkal való munkavégzéshez használt egyik általános modul a „MongoDB” nevű modul. Ez a modul a Node csomagkezelőn keresztül települ.
  • A MongoDB modul segítségével lekérdezheti a gyűjtemény rekordjait, és elvégezheti a szokásos frissítési, törlési és beszúrási műveleteket.
  • Végül az egyik modern gyakorlat az expressz keretrendszer használata a MongoDB-vel együtt a mai alkalmazások szállításához. Az Express keretrendszer felhasználhatja a MongoDB illesztőprogram által visszaküldött adatokat, és ennek megfelelően megjelenítheti az adatokat a felhasználó számára a weboldalon.