node.js MongoDB Oktatóanyag példákkal
Többnyire minden modern webalkalmazásnak van valamilyen adattároló rendszere a háttérben. Például, ha egy internetes vásárlási alkalmazást veszünk, akkor az olyan adatok, mint egy cikk ára, az adatbázisban tárolódnak.
A Node js keretrendszer mind a relációs (pl Oracle és MS SQL Server) és nem relációs adatbázisok (mint pl MongoDB). Ebben az oktatóanyagban látni fogjuk, hogyan használhatunk adatbázisokat a Node js alkalmazásokon belül.
Node.js és NoSQL adatbázisok
Az évek során a NoSQL adatbázis, mint pl MongoDB és For MySQL igen népszerűvé váltak az adatok tárolására szolgáló adatbázisokként. Ezeknek az adatbázisoknak a képessége, hogy bármilyen típusú tartalmat és különösen bármilyen formátumban tároljanak, az teszi ezeket az adatbázisokat olyan híressé.
A Node.js képes mindkettővel együttműködni MySQL és a MongoDB mint adatbázisok. Ezen adatbázisok bármelyikének használatához le kell töltenie és használnia kell a szükséges modulokat a Node csomagkezelő segítségével.
Minden MySQL, a szükséges modul neve „mysql” és használatához MongoDB a telepítendő modul a „Mongoose”.
Ezekkel a modulokkal a következő műveleteket hajthatja végre a Node.js-ben
- A kapcsolatkészlet kezelése – Itt adhatja meg a számát MySQL adatbázis-kapcsolatok, amelyeket a Node.js-nek kell karbantartania és mentenie.
- Kapcsolat létrehozása és bezárása adatbázissal. Mindkét esetben biztosíthat egy visszahívási funkciót, amely bármikor meghívható, amikor a „létrehozás” és a „bezárás” kapcsolati metódusok végrehajtásra kerülnek.
- Lekérdezéseket lehet végrehajtani az adatok lekéréséhez a megfelelő adatbázisokból.
- Ezekkel a modulokkal az adatok manipulálása, például adatok beszúrása, törlése és frissítése is megvalósítható.
A többi témakörben megnézzük, hogyan tudunk velük dolgozni MongoDB belül található adatbázisok node.js.
<p></p> MongoDB és Node.js
Ahogy az előző topikban is szó volt róla, MongoDB a Node.js mellett használt egyik legnépszerűbb adatbázis.
Ebben a fejezetben látni fogjuk
Hogyan tudunk kapcsolatot létesíteni a MongoDB adatbázis
Hogyan végezhetjük el a szokásos műveleteket az adatok kiolvasásával egy adatbázisból, valamint a rekordok beszúrásával, törlésével és frissítésével MongoDB adatbázisban.
Ebben a fejezetben tegyük fel, hogy az alábbiakkal rendelkezünk MongoDB adatok 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}, }
- Az NPM modulok telepítése
A Mongo Node alkalmazáson belüli eléréséhez illesztőprogramra van szüksége. Számos Mongo illesztőprogram áll rendelkezésre, de MongoDB a legnépszerűbbek közé tartozik. A telepítéshez a MongoDB modult, futtassa az alábbi parancsot
npm telepítse a mongodb -t
- Kapcsolat létrehozása és lezárása a MongoDB adatbázisban. Az alábbi kódrészlet bemutatja, hogyan lehet kapcsolatot létrehozni és bezárni a MongoDB adatbázisban.
Kód magyarázata:
- Az első lépés a mongoose modul beépítése, ami a követelmény függvényen keresztül történik. Ha ez a modul a helyére került, akkor a modulban elérhető szükséges funkciókat használhatjuk az adatbázishoz való kapcsolatok létrehozására.
- Ezután megadjuk az adatbázishoz való kapcsolódási karakterláncunkat. A csatlakozási karakterláncban 3 kulcsérték található, amelyeket átadnak.
- Az első a „mongodb”, amely megadja, hogy egy mongoDB adatbázishoz csatlakozunk.
- A következő a „localhost”, ami azt jelenti, hogy egy adatbázishoz csatlakozunk a helyi gépen.
- A következő az „EmployeeDB”, amely a mi adatbázisunkban meghatározott adatbázis neve MongoDB adatbázisban.
- A következő lépés az adatbázisunkhoz való tényleges csatlakozás. A connect funkció beveszi az URL-t, és visszahívási funkciót is megadhat. Meghívásra kerül, amikor a kapcsolat megnyílik az adatbázissal. Ez lehetőséget ad arra, hogy megtudjuk, hogy az adatbázis-kapcsolat sikeres volt-e vagy sem.
- A függvényben a „Kapcsolat létrejött” karakterláncot írjuk a konzolra, jelezve, hogy sikeres kapcsolat jött létre.
- Végül a db.close utasítással lezárjuk a kapcsolatot.
Ha a fenti kód megfelelően lefutott, a „Connected” karakterlánc beírásra kerül a konzolba az alábbiak szerint.
- Adatok lekérdezése a MongoDB adatbázis - Használni a MongoDB illesztőprogramból is lekérhetünk adatokat MongoDB adatbázis. Az alábbi rész bemutatja, hogyan használhatjuk az illesztőprogramot az alkalmazottak gyűjteményéből származó összes dokumentum lekéréséhez EmployeeDB adatbázisunkban. Ez a mi gyűjteményünk MongoDB adatbázis, amely tartalmazza az összes munkavállalóval kapcsolatos dokumentumot. Minden dokumentumhoz tartozik egy objektumazonosító, az alkalmazott neve és az alkalmazott azonosítója 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ázata:
- Az első lépésben létrehozunk egy kurzort (A kurzor egy mutató, amely az adatbázisból lekért különféle rekordokra mutat. A kurzort ezután az adatbázis különböző rekordjai közötti iterációra használjuk. Itt definiálunk egy kurzor nevű változó, amely az adatbázisból lekért rekordokra mutató mutató tárolására szolgál), amely a MongoDb gyűjteményből letöltött rekordokra mutat. Lehetőségünk van megadni az „Alkalmazott” gyűjteményt is, ahonnan a rekordokat le kell kérni. A find() függvény annak megadására szolgál, hogy az összes dokumentumot le akarjuk kérni a MongoDB gyűjtemény.
- Most iterálunk a kurzorunkon, és a kurzorban lévő minden egyes dokumentumhoz egy függvényt fogunk végrehajtani.
- A mi funkciónk egyszerűen kinyomtatja az egyes dokumentumok tartalmát a konzolra.
Jegyzet: - Lehetőség van egy adott rekord lekérésére is egy adatbázisból. Ezt a find() függvényben a keresési feltétel megadásával tehetjük meg. Tegyük fel például, hogy ha csak azt a rekordot akarta lekérni, 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"})
Ha a fenti kód sikeresen lefut, a következő kimenet jelenik meg a konzolon.
output:
A kimenetből,
- Tisztán láthatja, hogy a gyűjtemény összes dokumentumát lekérték. Ez lehetséges a mongoDB kapcsolat (db) find() metódusának használatával, és az összes dokumentumon a kurzor segítségével történő iterációval.
- Dokumentumok beillesztése a gyűjteménybe – A dokumentumok beszúrhatók egy gyűjteménybe a által biztosított insertOne módszerrel MongoDB könyvtár. 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ázata:
- Itt az insertOne metódust használjuk a MongoDB könyvtárat, hogy beillesszen egy dokumentumot az Employee gyűjteménybe.
- Meghatározzuk a dokumentum részleteit, hogy mit kell beilleszteni az Alkalmazotti gyűjteménybe.
Ha most ellenőrzi a tartalmát MongoDB adatbázis, az Employee gyűjteménybe beillesztve megtalálja az Employee 4-es EmployeeName és az „NewEmployee” EmployeeName rekordot.
Jegyzet: A konzol nem jelenít meg semmilyen kimenetet, mert a rekord beszúrásra kerül az adatbázisba, és itt nem lehet megjeleníteni kimenetet.
Annak ellenőrzéséhez, hogy az adatok megfelelően kerültek-e be az adatbázisba, hajtsa végre a következő parancsokat MongoDB
- Használja az EmployeeDB-t
- db.Employee.find({Employeeeid :4 })
Az első utasítás biztosítja, hogy csatlakozik az EmployeeDb adatbázishoz. A második utasítás azt a rekordot keresi, amelynek alkalmazotti azonosítója 4.
- Dokumentumok frissítése egy gyűjteményben – A dokumentumok egy gyűjteményben frissíthetők a következő által biztosított updateOne módszerrel MongoDB könyvtár. Az alábbi kódrészlet bemutatja, hogyan frissíthet egy dokumentumot egy mongoDB-gyűjteményben.
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ázata:
- Itt az „updateOne” metódust használjuk a MongoDB könyvtár, amely egy mongoDB gyűjteményben lévő dokumentum frissítésére szolgál.
- Meghatározzuk a keresési feltételeket, hogy melyik dokumentumot kell frissíteni. Esetünkben meg akarjuk találni azt a dokumentumot, amelynél az EmployeeName az „Új alkalmazott”.
- Ezután a dokumentum EmployeeName értékét „NewEmployee”-ról „Mohan”-ra szeretnénk beállítani.
Ha most ellenőrzi a tartalmát MongoDB adatbázis, az Employee gyűjteményben megtalálja a 4-es alkalmazottal és a „Mohan” munkavállalói névvel ellátott rekordot.
Annak ellenőrzéséhez, hogy az adatok megfelelően frissültek-e az adatbázisban, a következő parancsokat kell végrehajtania MongoDB
- Használja az EmployeeDB-t
- db.Employee.find({Employeeeid :4 })
Az első utasítás biztosítja, hogy csatlakozik az EmployeeDb adatbázishoz. A második utasítás azt a rekordot keresi, amelynek alkalmazotti azonosítója 4.
- Dokumentumok törlése gyűjteményben – A dokumentumokat a gyűjteményben a „deleteOne” módszerrel lehet törölni MongoDB könyvtár. Az alábbi kódrészlet bemutatja, hogyan lehet törölni egy dokumentumot egy mongoDB gyűjteményben.
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ázata:
- Itt a „deleteOne” módszert használjuk a MongoDB könyvtár, amely egy mongoDB gyűjteményben lévő dokumentumok törlésére szolgál.
- Meghatározzuk a keresési feltételeket, hogy melyik dokumentumot kell törölni. Esetünkben meg akarjuk találni a „Mohan” EmployeeName-vel rendelkező dokumentumot, és törölni szeretnénk ezt a dokumentumot.
Ha most ellenőrzi a tartalmát MongoDB adatbázisban megtalálja a Employee gyűjteményből törölve a 4. Employeeeid é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 MongoDB
- Használja az EmployeeDB-t
- db.Employee.find()
Az első utasítás biztosítja, hogy csatlakozik az EmployeeDb adatbázishoz. A második utasítás megkeresi és megjeleníti az alkalmazottak gyűjteményében található összes rekordot. Itt láthatja, hogy a rekordot törölték-e vagy sem.
Hogyan készítsünk egy csomópont expressz alkalmazást MongoDB tartalom tárolására és kiszolgálására
Alkalmazás készítése az expressz és a kettő kombinációjával MongoDB elég gyakori manapság.
Amikor dolgozik JavaForgatókönyv web alapú alkalmazások, itt általában a MEAN verem kifejezés szerepel.
- A MEAN stack kifejezés a gyűjteményre utal JavaWebes alkalmazások fejlesztésére használt szkript alapú technológiák.
- A MEAN a szó rövidítése MongoDB, ExpressJS, AngularJS, és Node.js.
Ezért mindig jó megérteni, hogy a Node.js és MongoDB együttműködve olyan alkalmazásokat szállítanak, amelyek kölcsönhatásba lépnek a háttéradatbázisokkal.
Nézzünk egy egyszerű példát arra, hogyan használhatjuk az „expressz” és a „MongoDB” együtt. Példánk ugyanazt az Employee gyűjteményt fogja használni a MongoDB EmployeeDB adatbázis.
Mostantól beépítjük az Express szolgáltatást, hogy megjelenítsük az adatokat weboldalunkon, amikor azt a felhasználó kéri. Amikor alkalmazásunk Node.js-en fut, előfordulhat, hogy meg kell tallózni az URL-címre http://localhost:3000/Employeeid.
Az oldal elindításakor az Alkalmazotti gyűjteményben szereplő összes alkalmazotti azonosító megjelenik. Lássuk tehát a kódrészletet szakaszokban, amelyek lehetővé teszik számunkra, hogy ezt elérjük.
Step 1) Határozza meg az alkalmazásunkban használandó összes könyvtárat, amely esetünkben mindkettő a MongoDB és expressz könyvtár.
Kód magyarázata:
- Meghatározzuk az „expressz” könyvtárunkat, amelyet az alkalmazásunkban fogunk használni.
- mi határozzuk meg aMongoDB' könyvtárat, amelyet az alkalmazásunkban fogunk használni a hálózatunkhoz való csatlakozáshoz MongoDB adatbázisban.
- Itt határozzuk meg az adatbázisunk URL-címét, amelyhez csatlakozni kell.
- Végül meghatározunk egy karakterláncot, amelyet az alkalmazotti azonosítók gyűjteményének tárolására használunk, amelyet később meg kell jeleníteni a böngészőben.
Step 2) Ebben a lépésben beszerezzük az „Alkalmazotti” gyűjteményünkben található összes rekordot, és ennek megfelelően dolgozunk velük.
Kód magyarázata:
- Létrehozunk egy útvonalat az 'Employeeid' nevű alkalmazásunkhoz. Tehát amikor valaki böngészik http://localhost:3000/Employeeid alkalmazásunkban az ehhez az útvonalhoz definiált kódrészlet végrehajtásra kerül.
- Itt megkapjuk az 'Employee' gyűjteményünk összes rekordját a db.collection('Employee').find() paranccsal. Ezután ezt a gyűjteményt hozzárendeljük egy kurzor nevű változóhoz. Ezzel a kurzorváltozóval a gyűjtemény összes rekordja között böngészhetünk.
- Most a cursor.each() függvényt használjuk, hogy a gyűjteményünk összes rekordja között navigáljunk. Minden rekordhoz meg fogunk határozni egy kódrészletet, hogy mit kell tenni az egyes rekordokhoz való hozzáféréskor.
- Végül azt látjuk, hogy ha a visszaadott rekord nem null, akkor az „item.Employeeid” paranccsal visszük az alkalmazottat. A kód többi része csak egy megfelelő HTML kód létrehozása, amely lehetővé teszi, hogy eredményeink megfelelően megjelenjenek a böngészőben.
Step 3) Ebben a lépésben elküldjük a kimenetünket a weboldalra, és az alkalmazásunkat egy adott porton figyeljük.
Kód magyarázata:
- Itt elküldjük weboldalunkra az előző lépésben elkészített teljes tartalmat. A „res” paraméter lehetővé teszi, hogy válaszként tartalmat küldjünk weboldalunkra.
- A teljes Node.js alkalmazásunkat a 3000-es porton figyeljük.
output:
A kimenetből,
- Világosan mutatja, hogy az Alkalmazotti gyűjteményben szereplő összes munkavállalói azonosítót lekértük. Ez azért van, mert használjuk a MongoDB illesztőprogram az adatbázishoz való csatlakozáshoz és az összes alkalmazotti rekord lekéréséhez, majd ezt követően az „express”-t használta a rekordok megjelenítéséhez.
Íme a kód a referenciaként
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 JSDeprecatedSymbols cursor.each(function(err, item) { if (item != null) { str = str + " Employee id " + item.Employeeid + "</br>"; } }); res.send(str); db.close(); }); }); var server = app.listen(3000, function() {});
Jegyzet: cursor.each esetleg elavult az Ön verziója alapján MongoDB sofőr. A probléma megkerülése érdekében hozzáfűzheti a //noinspection JSDeprecatedSymbols jelet a cursor.each elé. Alternatív megoldásként használhatja a forEach-t. Az alábbiakban a forEach mintakódja látható
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 + "</br>"; } }, function(err) { res.send(err); db.close(); } ); }); }); var server = app.listen(8080, function() {});
Összegzésként
- A Node.js a következővel együtt használatos NoSQL adatbázisok sok modern webalkalmazás létrehozásához. Néhány általánosan használt adatbázis MySQL és a MongoDB.
- Az egyik általánosan használt modul a munkához MongoDB Az adatbázisok egy modul 'MongoDB.' Ez a modul a Node csomagkezelőn keresztül telepíthető.
- Aktivitáskövető MongoDB modulban lehetőség van egy gyűjtemény rekordjainak lekérdezésére és a normál frissítési, törlési és beszúrási műveletek végrehajtására.
- Végül az egyik modern gyakorlat az expressz keretrendszer használata MongoDB modern alkalmazások szállítására. Az Express keretrendszer felhasználhatja az általa visszaküldött adatokat MongoDB illesztőprogramot, és ennek megfelelően jelenítse meg az adatokat a felhasználó számára a weboldalon.