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
- 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.
- 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.
- Lekérdezések hajthatók végre az adatok lekéréséhez a megfelelő adatbázisokból.
- 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},}
- 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
- 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:
- 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.
- 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.
- 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.
- A függvényben a "Kapcsolat létre" szöveget írjuk a konzolra, jelezve, hogy sikeres kapcsolat jött létre.
- 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.
- 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:
-
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.
-
Most iterálunk a kurzorunkon keresztül, és a kurzor minden egyes dokumentumához végrehajtunk egy függvényt.
-
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.
- 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:
- 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.
- 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
- Használja az EmployeeDB alkalmazást
- 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.
- 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:
- 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.
- 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".
- 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
- Használja az EmployeeDB alkalmazást
- 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.
- 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:
- 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.
- 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
- Használja az EmployeeDB alkalmazást
- 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:
- Meghatározzuk az expressz könyvtárunkat, amelyet az alkalmazásunkban használunk.
- Meghatározzuk az „expressz” könyvtárunkat, amelyet az alkalmazásunk használ a MongoDB adatbázisunkhoz való csatlakozáshoz.
- Itt definiáljuk az adatbázisunk URL-jét, amelyhez csatlakozni szeretnénk.
- 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:
- Ú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.
- 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.
- 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.
- 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:
- 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.
- 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.