Node.js MongoDB Õpetus koos näidetega
Enamasti on kõigi tänapäevaste veebirakenduste taustal mingi andmesalvestussüsteem. Näiteks kui võtate veebipõhise osturakenduse, salvestatakse andmebaasi andmed, näiteks kauba hind.
Node js raamistik võib töötada nii relatsioonilise (nt Oracle ja MS SQL Server) ja mitterelatsioonilised andmebaasid (nt MongoDB). Selles õpetuses näeme, kuidas saame kasutada andmebaase Node js-i rakendustes.
Node.js ja NoSQL andmebaasid
Aastate jooksul on NoSQL andmebaasi nagu MongoDB ja For MySQL on muutunud üsna populaarseks andmete salvestamise andmebaasidena. Nende andmebaaside võime salvestada mis tahes tüüpi sisu ja eriti mis tahes vormingus on see, mis teeb need andmebaasid nii kuulsaks.
Node.js-l on võimalus töötada mõlemaga MySQL ja MongoDB andmebaasidena. Nende andmebaaside kasutamiseks peate alla laadima ja kasutama sõlmede paketihalduri abil vajalikud moodulid.
eest MySQL, nimetatakse vajalikku moodulit "mysql" ja kasutamiseks MongoDB installitav nõutav moodul on "Mongoose".
Nende moodulitega saate Node.js-is teha järgmisi toiminguid
- Ühenduse kogumise haldamine – siin saate määrata nende arvu MySQL andmebaasiühendused, mida Node.js peaks hooldama ja salvestama.
- Looge ja sulgege ühendus andmebaasiga. Mõlemal juhul saate pakkuda tagasihelistamisfunktsiooni, mida saab kutsuda alati, kui käivitatakse ühenduse loomise ja sulgemise meetod.
- Päringuid saab käivitada, et saada andmeid vastavatest andmebaasidest andmete toomiseks.
- Nende moodulitega on võimalik ka andmetega manipuleerida, nagu andmete sisestamine, kustutamine ja värskendamine.
Ülejäänud teemade puhul vaatame, kuidas saame töötada MongoDB sees olevad andmebaasid Node.js.
Kasutamine MongoDB ja Node.js
Nagu eelmises teemas räägitud, MongoDB on üks populaarsemaid andmebaase, mida kasutatakse koos Node.js-iga.
Selle peatüki jooksul näeme
Kuidas saame luua sidemeid a MongoDB andmebaas
Kuidas saame teha tavalisi toiminguid andmebaasist andmete lugemiseks ning kirjete sisestamiseks, kustutamiseks ja värskendamiseks MongoDB andmebaas.
Selle peatüki jaoks oletame, et meil on alljärgnev MongoDB andmed paigas.
Andmebaasi nimi: EmployeeDB
Kollektsiooni nimi: Töötaja
Documents { {Employeeid : 1, Employee Name : Guru99}, {Employeeid : 2, Employee Name : Joe}, {Employeeid : 3, Employee Name : Martin}, }
- NPM-moodulite installimine
Mongole juurdepääsuks Node'i rakendusest vajate draiverit. Saadaval on mitmeid Mongo draivereid, kuid MongoDB on üks populaarsemaid. Et installida MongoDB moodul, käivitage allolev käsk
npm installige mongodb
- Ühenduse loomine ja sulgemine a MongoDB andmebaas. Allolev koodilõik näitab, kuidas luua ja sulgeda ühendus a-ga MongoDB andmebaas.
Koodi selgitus:
- Esimene samm on lisada mangoose moodul, mis toimub funktsiooni nõudmise kaudu. Kui see moodul on paigas, saame kasutada selles moodulis saadaolevaid vajalikke funktsioone andmebaasiga ühenduste loomiseks.
- Järgmisena täpsustame oma ühendusstringi andmebaasiga. Ühendusstringis on 3 võtmeväärtust, mis edastatakse.
- Esimene on "mongodb", mis määrab, et loome ühenduse mongoDB andmebaasiga.
- Järgmine on "localhost", mis tähendab, et loome ühenduse kohaliku masina andmebaasiga.
- Järgmine on "EmployeeDB", mis on meie andmebaasis määratletud andmebaasi nimi MongoDB andmebaas.
- Järgmine samm on meie andmebaasiga ühenduse loomine. Ühendusfunktsioon võtab meie URL-i ja sellel on võimalus määrata tagasihelistamise funktsioon. See kutsutakse välja, kui ühendus andmebaasiga avatakse. See annab meile võimaluse teada saada, kas andmebaasiühendus õnnestus või mitte.
- Funktsioonis kirjutame konsooli stringi "Ühendus loodud", mis näitab eduka ühenduse loomist.
- Lõpuks sulgeme ühenduse käsu db.close abil.
Kui ülaltoodud kood on õigesti käivitatud, kirjutatakse konsooli string "Connected", nagu allpool näidatud.
- Andmete päring a MongoDB andmebaas - Kasutades MongoDB draiverilt saame ka andmeid hankida MongoDB andmebaas. Allpool olev jaotis näitab, kuidas saame draiverit kasutada kõigi töötajate kogust dokumentide toomiseks meie EmployeeDB andmebaasis. See on meie kollektsioon MongoDB andmebaas, mis sisaldab kõiki töötajaga seotud dokumente. Igal dokumendil on dokumendi väärtuste määratlemiseks objekti ID, töötaja nimi ja töötaja ID.
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); }); });
Koodi selgitus:
- Esimeses etapis loome kursori (kursor on kursor, mida kasutatakse andmebaasist hangitud erinevatele kirjetele osutamiseks. Seejärel kasutatakse kursorit andmebaasi erinevate kirjete itereerimiseks. Siin määratleme muutuja nimega kursor, mida kasutatakse andmebaasist toodud kirjete kursori salvestamiseks ), mis osutab MongoDb kogust hangitud kirjetele. Meil on ka võimalus määrata kogu "Töötaja", kust kirjed tuua. Funktsiooni find() kasutatakse määramaks, et tahame kõik dokumendid alla laadida MongoDB kogumise.
- Kordame nüüd kursori kaudu ja iga kursoris oleva dokumendi puhul täidame funktsiooni.
- Meie funktsioon on lihtsalt iga dokumendi sisu konsooli printimine.
Märge: - Samuti on võimalik tuua andmebaasist konkreetne kirje. Seda saab teha määrates otsingutingimuse funktsioonis find(). Oletame näiteks, et kui soovite lihtsalt tuua kirje, mille töötaja nimi on Guru99, saab selle avalduse kirjutada järgmiselt
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Kui ülaltoodud kood on edukalt käivitatud, kuvatakse teie konsoolis järgmine väljund.
Väljund:
Väljundist,
- Näete selgelt, et kõik kogust pärinevad dokumendid on välja otsitud. See on võimalik, kasutades mongoDB ühenduse (db) meetodit find() ja itereerides kursori abil kõiki dokumente.
- Dokumentide lisamine kogusse – Dokumente saab kogusse lisada, kasutades meetodit insertOne, mida pakub MongoDB raamatukogu. Allolev koodilõik näitab, kuidas saame dokumendi mongoDB kogusse sisestada.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').insertOne({ Employeeid: 4, EmployeeName: "NewEmployee" }); });
Koodi selgitus:
- Siin kasutame meetodit insertOne alates MongoDB raamatukogu, et lisada dokument töötajate kogusse.
- Täpsustame dokumendi üksikasju selle kohta, mida tuleb töötajate kogusse lisada.
Kui kontrollite nüüd oma MongoDB andmebaasist leiate kirje, mille töötaja nimi on 4 ja EmployeeName, mis on sisestatud kogusse Töötaja.
Märge: Konsool ei näita väljundit, kuna kirjet sisestatakse andmebaasi ja siin ei saa väljundit kuvada.
Et kontrollida, kas andmed on andmebaasi õigesti sisestatud, peate sisestama järgmised käsud MongoDB
- Kasutage EmployeeDB-d
- db.Employee.find({Töötaja :4 })
Esimene väide tagab, et olete ühenduses EmployeeDb andmebaasiga. Teine lause otsib kirjet, mille töötaja ID on 4.
- Dokumentide värskendamine kogus – Dokumente saab kogus värskendada, kasutades selleks pakutavat updateOne meetodit MongoDB raamatukogu. Allolev koodilõik näitab, kuidas värskendada dokumenti mongoDB kogus.
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" } }); });
Koodi selgitus:
- Siin kasutame "updateOne" meetodit MongoDB teek, mida kasutatakse mongoDB kogus oleva dokumendi värskendamiseks.
- Täpsustame otsingukriteeriume, millist dokumenti on vaja uuendada. Meie puhul tahame leida dokumendi, mille töötaja nimi on "Uus töötaja".
- Seejärel tahame määrata dokumendi EmployeeName väärtuseks "NewEmployee" väärtuseks "Mohan".
Kui kontrollite nüüd oma MongoDB andmebaasi leiate kogust Töötaja uuendatud kirje 4 töötaja töötaja nimega ja Mohani töötaja nimi.
Et kontrollida, kas andmed on andmebaasis õigesti värskendatud, peate täitma järgmised käsud MongoDB
- Kasutage EmployeeDB-d
- db.Employee.find({Töötaja :4 })
Esimene väide tagab, et olete ühenduses EmployeeDb andmebaasiga. Teine lause otsib kirjet, mille töötaja ID on 4.
- Dokumentide kustutamine kogus – Kogus olevaid dokumente saab kustutada, kasutades selleks pakutavat “deleteOne” meetodit MongoDB raamatukogu. Allolev koodilõik näitab, kuidas mongoDB kogus olevat dokumenti kustutada.
var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://localhost/EmployeeDB'; MongoClient.connect(url, function(err, db) { db.collection('Employee').deleteOne( { "EmployeeName": "Mohan" } ); });
Koodi selgitus:
- Siin kasutame "deleteOne" meetodit MongoDB teek, mida kasutatakse mongoDB kogus oleva dokumendi kustutamiseks.
- Täpsustame otsingukriteeriumid, millise dokumendi kohta tuleb kustutada. Meie puhul tahame leida dokumendi, millel on Mohani töötaja nimi, ja selle dokumendi kustutada.
Kui kontrollite nüüd oma MongoDB andmebaasist leiate töötaja kogust kustutatud kirje, mille töötaja nimi on 4 ja EmployeeName of Mohan.
Et kontrollida, kas andmed on andmebaasis õigesti värskendatud, peate täitma järgmised käsud MongoDB
- Kasutage EmployeeDB-d
- db.Employee.find()
Esimene väide tagab, et olete ühenduses EmployeeDb andmebaasiga. Teine avaldus otsib ja kuvab kõik töötajate kogus olevad kirjed. Siin näete, kas kirje on kustutatud või mitte.
Kuidas luua sõlme ekspressrakendust MongoDB sisu salvestamiseks ja teenindamiseks
Rakenduse loomine kombineerides nii ekspress- kui ka MongoDB on tänapäeval üsna tavaline.
Töötades koos JavaScript veebipõhised rakendused, kasutatakse siin tavaliselt terminit MEAN stack.
- Mõiste MEAN stack viitab kogumile JavaSkriptipõhised tehnoloogiad, mida kasutatakse veebirakenduste arendamiseks.
- MEAN on akronüüm MongoDB, ExpressJS, AngularJS, ja Node.js.
Seetõttu on alati hea mõista, kuidas Node.js ja MongoDB teha koostööd, et pakkuda rakendusi, mis suhtlevad taustaandmebaasidega.
Vaatame lihtsat näidet selle kohta, kuidas saame kasutada väljendeid "express" ja "MongoDB” koos. Meie näide kasutab sama töötajate kollektsiooni MongoDB EmployeeDB andmebaas.
Nüüd lisame Expressi, et kuvada andmed meie veebisaidil, kui kasutaja seda nõuab. Kui meie rakendus töötab saidil Node.js, võib tekkida vajadus sirvida URL-i http://localhost:3000/Employeeid.
Lehe käivitamisel kuvatakse kogu töötaja ID kogus Töötaja. Nii et vaatame koodilõiku jaotistes, mis võimaldavad meil seda saavutada.
Step 1) Määratlege kõik meie rakenduses kasutatavad teegid, mis meie puhul on mõlemad MongoDB ja ekspressraamatukogu.
Koodi selgitus:
- Me määratleme oma kiirteegi, mida kasutatakse meie rakenduses.
- me määratleme oma"MongoDB' raamatukogu, mida kasutatakse meie rakenduses meiega ühenduse loomiseks MongoDB andmebaas.
- Siin määratleme oma andmebaasi URL-i, millega ühenduse luua.
- Lõpuks määratleme stringi, mida kasutatakse meie töötaja ID-de kogu salvestamiseks, mida tuleb hiljem brauseris kuvada.
Step 2) Selles etapis hangime nüüd kõik meie töötajate kogusse kuuluvad kirjed ja töötame nendega vastavalt.
Koodi selgitus:
- Loome marsruuti meie rakendusele nimega "Töötajaid". Nii et kui keegi sirvib http://localhost:3000/Employeeid meie rakenduses käivitatakse selle marsruudi jaoks määratud koodilõik.
- Siit saame käsu db.collection('Employee').find() kaudu kõik meie kogus olevad kirjed "Töötaja". Seejärel määrame selle kogu muutujale nimega kursor. Seda kursorimuutujat kasutades saame sirvida kõiki kollektsiooni kirjeid.
- Nüüd kasutame funktsiooni cursor.each(), et navigeerida kõigis oma kogu kirjetes. Iga kirje jaoks määratleme koodilõigu, mida teha, kui igale kirjele juurde pääseb.
- Lõpuks näeme, et kui tagastatud kirje ei ole null, siis võtame töötaja käsuga “artikkel.Töötaja”. Ülejäänud osa koodist on mõeldud õige HTML-koodi loomiseks, mis võimaldab meie tulemusi brauseris õigesti kuvada.
Step 3) Selles etapis saadame oma väljundi veebilehele ja paneme oma rakenduse konkreetses pordis kuulama.
Koodi selgitus:
- Siin saadame oma veebilehele kogu eelmises etapis koostatud sisu. Parameeter „res” võimaldab meil vastusena sisu meie veebilehele saata.
- Paneme kogu oma Node.js rakenduse kuulama porti 3000.
Väljund:
Väljundist,
- See näitab selgelt, et kõik töötajate kogus olevad töötajad saadi kätte. Seda seetõttu, et me kasutame MongoDB draiveri andmebaasiga ühenduse loomiseks ja kõigi Töötajakirjete hankimiseks ning seejärel kirjete kuvamiseks "ekspressi" abil.
Siin on kood teie viitamiseks
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() {});
Märge: cursor.each võib teie versiooni põhjal aegunud MongoDB autojuht. Probleemist kõrvalehoidmiseks võite enne cursor.each lisada //noinspection JSDeprecatedSymbols. Teise võimalusena võite kasutada forEachi. Allpool on näidiskood kasutades 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 + "</br>"; } }, function(err) { res.send(err); db.close(); } ); }); }); var server = app.listen(8080, function() {});
kokkuvõte
- Node.js kasutatakse koos NoSQL andmebaasid, et luua palju tänapäevaseid veebirakendusi. Mõned levinumad andmebaasid on MySQL ja MongoDB.
- Üks levinumaid mooduleid, millega töötamiseks kasutatakse MongoDB andmebaasid on moodul nimega "MongoDB.' See moodul installitakse Node paketihalduri kaudu.
- Koos MongoDB moodulis on võimalik teha päringuid kogus olevate kirjete kohta ning teha tavalisi värskendamise, kustutamise ja sisestamise toiminguid.
- Lõpuks on üks kaasaegseid tavasid ekspressraamistiku kasutamine koos MongoDB kaasaegsete rakenduste tarnimiseks. Expressi raamistik saab kasutada kasutaja tagastatud andmeid MongoDB draiver ja kuvab andmed kasutajale vastavalt veebilehel.