„Node.js“ „MongoDB“ pamoka su pavyzdžiais

Turinys:

Anonim

Dažniausiai visose šiuolaikinėse interneto programose yra tam tikra duomenų saugojimo sistema. Pvz., Jei imtumėtės internetinės apsipirkimo programos, duomenys, pvz., Prekės kaina, būtų saugomi duomenų bazėje.

„Node js“ sistema gali dirbti su duomenų bazėmis, turinčiomis tiek reliacines (pvz., „Oracle“ ir „MS SQL Server“), tiek su nereliacinėmis duomenų bazėmis (pvz., „MongoDB“). Šioje pamokoje pamatysime, kaip galime naudoti „Node js“ programų duomenų bazes.

Šioje pamokoje sužinosite

  • „Node.js“ ir „NoSQL“ duomenų bazės
  • Naudojant „MongoDB“ ir „Node.js“
  • Kaip sukurti „Node Express“ programą su „MongoDB“ turiniui saugoti ir teikti

„Node.js“ ir „NoSQL“ duomenų bazės

Per daugelį metų „NoSQL“ duomenų bazės, tokios kaip „MongoDB“ ir „MySQL“, tapo gana populiarios kaip duomenų saugojimo duomenų bazės. Šių duomenų bazių garsumas yra tas, kad šios duomenų bazės gali saugoti bet kokio tipo turinį, ypač bet kokio formato.

„Node.js“ gali dirbti tiek su „MySQL“, tiek su „MongoDB“ kaip su duomenų bazėmis. Norėdami naudoti bet kurią iš šių duomenų bazių, turite atsisiųsti ir naudoti reikiamus modulius naudodami „Node“ paketų tvarkyklę.

„MySQL“ reikalingas modulis vadinamas „mysql“, o norint naudoti „MongoDB“, būtinas modulis, kurį reikia įdiegti, yra „Mongoose“.

Naudodami šiuos modulius, Node.js galite atlikti šias operacijas

  1. Tvarkykite ryšių telkimą - čia galite nurodyti „MySQL“ duomenų bazės ryšių, kuriuos turėtų išlaikyti ir išsaugoti „Node.js“, skaičių.
  2. Sukurkite ir uždarykite ryšį su duomenų baze. Bet kuriuo atveju galite pateikti atgalinio skambinimo funkciją, kurią galima iškviesti, kai vykdomi „sukurti“ ir „uždaryti“ ryšio metodai.
  3. Užklausos gali būti vykdomos norint gauti duomenis iš atitinkamų duomenų bazių duomenims gauti.
  4. Naudojant šiuos modulius taip pat galima manipuliuoti duomenimis, pavyzdžiui, įterpti duomenis, ištrinti ir atnaujinti duomenis.

Kalbant apie likusias temas, mes apžvelgsime, kaip mes galime dirbti su „MongoDB“ duomenų bazėmis „Node.js“.

Naudojant „MongoDB“ ir „Node.js“

Kaip aptarta ankstesnėje temoje, „MongoDB“ yra viena populiariausių duomenų bazių, naudojama kartu su „Node.js“.

Šio skyriaus metu pamatysime

Kaip mes galime užmegzti ryšius su „MongoDB“ duomenų baze

Kaip mes galime atlikti įprastas duomenų nuskaitymo iš duomenų bazės operacijas, taip pat įterpti, ištrinti ir atnaujinti įrašus į „MongoDB“ duomenų bazę.

Tarkime, kad šiame skyriuje yra žemiau pateikti „MongoDB“ duomenys.

Duomenų bazės pavadinimas: EmployeeDB

Kolekcijos pavadinimas: darbuotojas

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. „NPM“ modulių diegimas

Norėdami pasiekti „Mongo“ iš „Node“ programos, turite tvarkyklę. Yra keletas „Mongo“ tvarkyklių, tačiau „MongoDB“ yra viena iš populiariausių. Norėdami įdiegti „MongoDB“ modulį, vykdykite toliau pateiktą komandą

npm įdiegti mongodb

  1. Ryšio su „MongoDB“ duomenų baze sukūrimas ir uždarymas. Žemiau pateiktame kodo fragmente parodyta, kaip sukurti ir uždaryti ryšį su „MongoDB“ duomenų baze.

Kodo paaiškinimas:

  1. Pirmasis žingsnis - įtraukti mangustą modulį, kuris atliekamas naudojant reikiamą funkciją. Kai šis modulis bus įdiegtas, galėsime naudoti reikalingas šiame modulyje esančias funkcijas, kad sukurtume ryšius su duomenų baze.
  2. Tada mes nurodome savo ryšio eilutę su duomenų baze. Prisijungimo eilutėje yra 3 pagrindinės vertės, kurios yra perduodamos.
  • Pirmasis yra „mongodb“, nurodantis, kad jungiamės prie „mongoDB“ duomenų bazės.
  • Kitas yra „localhost“, o tai reiškia, kad mes jungiamės prie vietinės mašinos duomenų bazės.
  • Kitas yra „EmployeeDB“, kuris yra mūsų MongoDB duomenų bazėje apibrėžtos duomenų bazės pavadinimas.
  1. Kitas žingsnis - iš tikrųjų prisijungti prie mūsų duomenų bazės. Prisijungimo funkcija nurodo mūsų URL ir turi galimybę nurodyti atgalinio skambinimo funkciją. Jis bus iškviestas atidarius ryšį su duomenų baze. Tai suteikia mums galimybę sužinoti, ar duomenų bazės ryšys buvo sėkmingas, ar ne.
  2. Funkcijoje į konsolę rašome eilutę „Prisijungimas nustatytas“, kad nurodytume, jog sukurtas sėkmingas ryšys.
  3. Galiausiai uždarome ryšį naudodami db.close sakinį.

Jei aukščiau nurodytas kodas bus tinkamai vykdomas, eilutė „Prisijungta“ bus įrašyta į konsolę, kaip parodyta žemiau.

  1. Duomenų užklausa „MongoDB“ duomenų bazėje - naudodami „MongoDB“ tvarkyklę taip pat galime gauti duomenis iš „MongoDB“ duomenų bazės.

    Žemiau pateiktame skyriuje bus parodyta, kaip mes galime naudoti tvarkyklę, kad gautume visus dokumentus iš „Employee“ rinkinio, esančio mūsų „EmployeeDB“ duomenų bazėje. Tai yra kolekcija mūsų „MongoDB“ duomenų bazėje, kurioje yra visi su darbuotojais susiję dokumentai. Kiekvienas dokumentas turi objekto ID, darbuotojo vardą ir darbuotojo ID, kad apibrėžtų dokumento vertes.

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

Kodo paaiškinimas:

  1. Pirmame žingsnyje kuriame žymeklį (žymeklis yra žymeklis, naudojamas nukreipti į įvairius įrašus, paimtus iš duomenų bazės. Tada žymeklis naudojamas kartojant skirtingus įrašus duomenų bazėje. Čia mes apibrėžiame kintamojo vardas, vadinamas žymekliu, kuris bus naudojamas žymekliui saugoti iš duomenų bazės paimtuose įrašuose.), kuris nurodo įrašus, kurie yra paimti iš „MongoDb“ kolekcijos. Mes taip pat turime galimybę nurodyti kolekciją „Darbuotojas“, iš kurios galima gauti įrašus. Funkcija „find ()“ naudojama nurodyti, kad norime atgauti visus dokumentus iš „MongoDB“ kolekcijos.

  2. Dabar kartojame žymeklį ir kiekvienam žymeklio dokumentui vykdysime funkciją.

  3. Mūsų funkcija yra tiesiog atsispausdinti kiekvieno dokumento turinį į konsolę.

Pastaba: - Taip pat galima gauti tam tikrą įrašą iš duomenų bazės. Tai galima padaryti nurodant paieškos sąlygą funkcijoje find (). Pvz., Tarkime, jei jūs tiesiog norėjote gauti įrašą, kurio darbuotojo vardas yra Guru99, tada šį teiginį galima parašyti taip

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

Jei minėtas kodas bus sėkmingai įvykdytas, konsolėje bus rodomas toks išvestis.

Išvestis:

Iš išvesties

  • Galėsite aiškiai pamatyti, kad visi kolekcijos dokumentai yra paimti. Tai įmanoma naudojant „mongoDB“ ryšio (db) metodą „find ()“ ir iteruojant visus dokumentus naudojant žymeklį.
  1. Dokumentų įterpimas į kolekciją - dokumentus į rinkinį galima įterpti naudojant „insertOne“ metodą, kurį teikia „MongoDB“ biblioteka. Žemiau pateiktame kodo fragmente parodyta, kaip galime įterpti dokumentą į „mongoDB“ kolekciją.

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

Kodo paaiškinimas:

  1. Čia mes naudojame metodą insertOne iš MongoDB bibliotekos, kad įterptume dokumentą į Darbuotojų kolekciją.
  2. Nurodome išsamią dokumento informaciją apie tai, ką reikia įtraukti į darbuotojų kolekciją.

Jei dabar patikrinsite savo „MongoDB“ duomenų bazės turinį, „Darbuotojų“ kolekcijoje rasite įrašą „Darbuotojo 4“ ir „Naujojo darbuotojo“ darbuotojo vardas.

Pastaba: konsolėje nebus rodoma jokia išvestis, nes įrašas įterpiamas į duomenų bazę ir čia negalima rodyti jokios išvesties.

Norėdami patikrinti, ar duomenys tinkamai įterpti į duomenų bazę, turite atlikti šias komandas „MongoDB“

  1. Naudokite „EmployeeDB“
  2. db.Employee.find ({Darbuotojo ID: 4})

Pirmasis teiginys užtikrina, kad esate prisijungę prie „EmployeeDb“ duomenų bazės. Antrame pareiškime ieškoma įrašo, kurio darbuotojo ID yra 4.

  1. Kolekcijos dokumentų atnaujinimas - dokumentus galima atnaujinti kolekcijoje naudojant „updateOne“ metodą, kurį teikia „MongoDB“ biblioteka. Žemiau pateiktame kodo fragmente parodyta, kaip atnaujinti dokumentą „mongoDB“ kolekcijoje.

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

Kodo paaiškinimas:

  1. Čia mes naudojame „updateOne“ metodą iš MongoDB bibliotekos, kuris naudojamas atnaujinti mongoDB kolekcijos dokumentą.
  2. Mes nurodome paieškos kriterijus, kurį dokumentą reikia atnaujinti. Mūsų atveju norime rasti dokumentą, kurio „EmployeeName“ yra „NewEmployee“.
  3. Tada norime nustatyti dokumento „EmployeeName“ vertę iš „NewEmployee“ į „Mohan“.

Jei dabar patikrinsite savo „MongoDB“ duomenų bazės turinį, įraše „Employeeid of 4“ ir „Mohan“ EmployeeName rasite atnaujintą „Employee“ kolekcijoje.

Norėdami patikrinti, ar duomenys tinkamai atnaujinti duomenų bazėje, turite atlikti šias komandas „MongoDB“

  1. Naudokite „EmployeeDB“
  2. db.Employee.find ({Darbuotojo ID: 4})

Pirmasis teiginys užtikrina, kad esate prisijungę prie „EmployeeDb“ duomenų bazės. Antrame pareiškime ieškoma įrašo, kurio darbuotojo ID yra 4.

  1. Dokumentų ištrynimas iš kolekcijos - dokumentai gali būti ištrinti kolekcijoje naudojant „deleteOne“ metodą, kurį teikia MongoDB biblioteka. Žemiau pateiktame kodo fragmente parodyta, kaip ištrinti dokumentą iš „mongoDB“ kolekcijos.

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

Kodo paaiškinimas:

  1. Čia mes naudojame „deleteOne“ metodą iš MongoDB bibliotekos, kuris naudojamas ištrinti dokumentą iš mongoDB kolekcijos.
  2. Mes nurodome paieškos kriterijus, kurį dokumentą reikia ištrinti. Mūsų atveju norime rasti dokumentą, kurio darbuotojo vardas yra „Mohan“, ir ištrinti šį dokumentą.

Jei dabar patikrinsite savo „MongoDB“ duomenų bazės turinį, iš „Employee“ kolekcijos bus ištrintas įrašas „Employeeid of 4“ ir „Mohan“ EmployeeName.

Norėdami patikrinti, ar duomenys tinkamai atnaujinti duomenų bazėje, turite atlikti šias komandas „MongoDB“

  1. Naudokite „EmployeeDB“
  2. db.Employee.find ()

Pirmasis teiginys užtikrina, kad esate prisijungę prie „EmployeeDb“ duomenų bazės. Antruoju teiginiu ieškoma ir rodomi visi darbuotojų kolekcijos įrašai. Čia galite pamatyti, ar įrašas buvo ištrintas, ar ne.

Kaip sukurti „Node Express“ programą su „MongoDB“ turiniui saugoti ir teikti

Šiais laikais yra gana įprasta kurti programą kartu naudojant „express“ ir „MongoDB“.

Dirbant su „JavaScript“ internetinėmis programomis, čia paprastai nurodomas terminas „MEAN stack“.

  • Terminas „MEAN stack“ reiškia „JavaScript“ pagrįstų technologijų rinkinį, naudojamą kuriant žiniatinklio programas.
  • MEAN yra MongoDB, ExpressJS, AngularJS ir Node.js akronimas.

Taigi visada gerai suprasti, kaip „Node.js“ ir „MongoDB“ dirba kartu teikdami programas, sąveikaujančias su vidinės programos duomenų bazėmis.

Pažvelkime į paprastą pavyzdį, kaip galime kartu naudoti „express“ ir „MongoDB“. Mūsų pavyzdyje bus naudojama ta pati „MongoDB EmployeeDB“ duomenų bazėje esanti „Employee“ kolekcija.

Dabar integruosime „Express“, kad duomenys būtų rodomi mūsų tinklalapyje, kai to pareikalaus vartotojas. Kai mūsų programa veikia „Node.js“, gali tekti naršyti iki URL : http: // localhost: 3000 / Employeeid .

Paleidus puslapį, bus rodomas visas darbuotojo identifikatorius kolekcijoje „Darbuotojai“. Taigi pažiūrėkime kodo fragmentą skyriuose, kurie leis mums tai pasiekti.

1 žingsnis. Apibrėžkite visas bibliotekas, kurias reikia naudoti mūsų programoje, o tai mūsų atveju yra ir „MongoDB“, ir „express“ biblioteka.

Kodo paaiškinimas:

  1. Mes apibrėžiame savo „greitąją“ biblioteką, kuri bus naudojama mūsų programoje.
  2. Mes apibrėžiame savo „express“ biblioteką, kuri bus naudojama mūsų programoje prisijungiant prie mūsų „MongoDB“ duomenų bazės.
  3. Čia mes apibrėžiame savo duomenų bazės URL, prie kurio norite prisijungti.
  4. Galiausiai mes apibrėžiame eilutę, kuri bus naudojama saugant mūsų darbuotojo ID kolekciją, kuri vėliau turi būti rodoma naršyklėje.

2 žingsnis) Šiame žingsnyje dabar gausime visus „Darbuotojų“ kolekcijos įrašus ir atitinkamai su jais dirbsime.

Kodo paaiškinimas:

  1. Mes kuriame kelią į savo programą, pavadintą „Employeeid“. Taigi kaskart naršant mūsų programos http: // localhost: 3000 / Employeeid , bus vykdomas šiam maršrutui nustatytas kodo fragmentas.
  2. Čia mes gauname visus įrašus savo „Darbuotojų“ kolekcijoje naudodami komandą db.collection („Darbuotojas“. Find (). Tada priskiriame šią kolekciją kintamajam, vadinamam žymekliu. Naudodami šį žymeklio kintamąjį galėsime naršyti po visus kolekcijos įrašus.
  3. Dabar mes naudojame funkciją cursor.each (), kad galėtume naršyti po visus savo kolekcijos įrašus. Kiekvienam įrašui nustatysime kodo fragmentą, ką daryti, kai pasieksite kiekvieną įrašą.
  4. Galiausiai matome, kad jei grąžinamas įrašas nėra nulinis, tada mes paimame darbuotoją per komandą "item.Employeeid". Likęs kodas yra tik tam, kad sukurtumėte tinkamą HTML kodą, kuris leis mūsų rezultatus tinkamai rodyti naršyklėje.

3 žingsnis) Šiame žingsnyje mes išsiųsime savo išvestį į tinklalapį ir priversime mūsų programą klausytis tam tikrame prievade.

Kodo paaiškinimas:

  1. Čia mes siunčiame visą turinį, sukurtą ankstesniame etape, į savo tinklalapį. „Res“ parametras leidžia mums siųsti turinį į mūsų tinklalapį kaip atsakymą.
  2. Mes priverčiame visą „Node.js“ programą klausytis 3000 prievado.

Išvestis:

Iš išvesties

  • Tai aiškiai rodo, kad visi darbuotojai buvo surinkti „Employee“ kolekcijoje. Taip yra todėl, kad mes naudojame „MongoDB“ tvarkyklę, kad prisijungtume prie duomenų bazės ir gautume visus „Employee“ įrašus, o vėliau įrašams rodyti naudojome „express“.

Čia yra jūsų nuorodos kodas

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

Pastaba: žymeklis.each gali būti nebenaudojamas pagal jūsų „MongoDB“ tvarkyklės versiją. Norėdami apeiti problemą, galite pridėti // noinspection JSDeprecatedSymbols prieš kursorių.each. Arba galite naudoti forEach. Žemiau yra pavyzdinis kodas naudojant 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 + "
";}}, function(err) {res.send(err);db.close();});});});var server = app.listen(8080, function() {});

Santrauka

  • „Node.js“ naudojamas kartu su „NoSQL“ duomenų bazėmis kuriant daugybę šiuolaikinių interneto programų. Kai kurios įprastos naudojamos duomenų bazės yra MySQL ir MongoDB.
  • Vienas iš įprastų modulių, naudojamų dirbant su „MongoDB“ duomenų bazėmis, yra „MongoDB“ vadinamas modulis. Šis modulis įdiegtas per „Node“ paketų tvarkytuvę.
  • Naudojant „MongoDB“ modulį, galima pateikti užklausą apie kolekcijos įrašus ir atlikti įprastas atnaujinimo, ištrynimo ir įterpimo operacijas.
  • Galiausiai, viena iš šiuolaikinių praktikų yra naudoti „express“ sistemą kartu su „MongoDB“ šiuolaikinėms programoms teikti. „Express“ sistema gali naudoti „MongoDB“ tvarkyklės grąžintus duomenis ir atitinkamai rodyti duomenis vartotojui tinklalapyje.