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

  1. 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.
  2. 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.
  3. Lekérdezéseket lehet végrehajtani az adatok lekéréséhez a megfelelő adatbázisokból.
  4. 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},
}
  1. 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

  1. 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.

<p></p>
 MongoDB és Node.js

Kód magyarázata:

  1. 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.
  2. 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.
  1. 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.
  2. A függvényben a „Kapcsolat létrejött” karakterláncot írjuk a konzolra, jelezve, hogy sikeres kapcsolat jött létre.
  3. 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.

<p></p>
 MongoDB és Node.js

  1. 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.

<p></p>
 MongoDB és Node.js

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:

  1. 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.
  2. Most iterálunk a kurzorunkon, és a kurzorban lévő minden egyes dokumentumhoz egy függvényt fogunk végrehajtani.
  3. 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:

<p></p>
 MongoDB és Node.js

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.
  1. 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.

<p></p>
 MongoDB és Node.js

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:

  1. Itt az insertOne metódust használjuk a MongoDB könyvtárat, hogy beillesszen egy dokumentumot az Employee gyűjteménybe.
  2. 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

  1. Használja az EmployeeDB-t
  2. 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.

  1. 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.

<p></p>
 MongoDB és Node.js

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:

  1. 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.
  2. 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”.
  3. 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

  1. Használja az EmployeeDB-t
  2. 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.

  1. 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.

<p></p>
 MongoDB és Node.js

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:

  1. 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.
  2. 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

  1. Használja az EmployeeDB-t
  2. 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.

Hozzon létre egy Node Express alkalmazást MongoDB

Kód magyarázata:

  1. Meghatározzuk az „expressz” könyvtárunkat, amelyet az alkalmazásunkban fogunk használni.
  2. 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.
  3. Itt határozzuk meg az adatbázisunk URL-címét, amelyhez csatlakozni kell.
  4. 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.

Hozzon létre egy Node Express alkalmazást MongoDB

Kód magyarázata:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Hozzon létre egy Node Express alkalmazást MongoDB

Kód magyarázata:

  1. 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.
  2. A teljes Node.js alkalmazásunkat a 3000-es porton figyeljük.

output:

Hozzon létre egy Node Express alkalmazást MongoDB

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.