Node.js MongoDB apmācība ar piemēriem

Satura rādītājs:

Anonim

Pārsvarā visām mūsdienu tīmekļa lietojumprogrammām aizmugurē ir sava veida datu glabāšanas sistēma. Piemēram, ja ņemat vērā tīmekļa iepirkšanās lietojumprogrammu, dati, piemēram, preces cena, tiks saglabāti datu bāzē.

Node js ietvars var darboties ar datu bāzēm gan ar relāciju (piemēram, Oracle un MS SQL Server), gan ar nerelāciju datu bāzēm (piemēram, MongoDB). Šajā apmācībā mēs redzēsim, kā mēs varam izmantot datu bāzes no Node js lietojumprogrammām.

Šajā apmācībā jūs uzzināsiet

  • Node.js un NoSQL datu bāzes
  • Izmantojot MongoDB un Node.js
  • Kā izveidot mezglu ekspress lietotni ar MongoDB satura glabāšanai un apkalpošanai

Node.js un NoSQL datu bāzes

Gadu gaitā NoSQL datu bāze, piemēram, MongoDB un MySQL, ir kļuvusi diezgan populāra kā datu bāzes datu glabāšanai. Šo datu bāzu tik slavenu padara šo datu bāzu spēja uzglabāt jebkura veida saturu un it īpaši jebkura veida formātā.

Node.js ir iespēja strādāt gan ar MySQL, gan MongoDB kā datu bāzēm. Lai izmantotu kādu no šīm datu bāzēm, nepieciešams lejupielādēt un izmantot nepieciešamos moduļus, izmantojot Node pakotņu pārvaldnieku.

MySQL nepieciešamais modulis tiek saukts par "mysql", un, lietojot MongoDB, nepieciešamais modulis, kas jāinstalē, ir "Mongoose".

Izmantojot šos moduļus, vietnē Node.js varat veikt šādas darbības

  1. Pārvaldiet savienojumu kopēšanu - šeit varat norādīt MySQL datu bāzes savienojumu skaitu, kas jāuztur un jāsaglabā Node.js.
  2. Izveidojiet un aizveriet savienojumu ar datu bāzi. Jebkurā gadījumā jūs varat nodrošināt atzvanīšanas funkciju, kuru var izsaukt ikreiz, kad tiek izpildītas savienojuma izveidošanas un aizvēršanas metodes.
  3. Vaicājumus var izpildīt, lai iegūtu datus no attiecīgajām datu bāzēm, lai izgūtu datus.
  4. Izmantojot šos moduļus, var panākt arī datu manipulāciju, piemēram, datu ievietošanu, dzēšanu un atjaunināšanu.

Attiecībā uz atlikušajām tēmām mēs apskatīsim, kā mēs varam strādāt ar MongoDB datu bāzēm Node.js.

Izmantojot MongoDB un Node.js

Kā tika apspriests iepriekšējā tēmā, MongoDB ir viena no populārākajām datubāzēm, ko izmanto kopā ar Node.js.

Šīs nodaļas laikā mēs to redzēsim

Kā mēs varam izveidot savienojumus ar MongoDB datu bāzi

Kā mēs varam veikt parastās darbības, lasot datus no datu bāzes, kā arī ievietojot, dzēšot un atjauninot ierakstus MongoDB datu bāzē.

Šīs nodaļas nolūkā pieņemsim, ka mums ir zemāk norādītie MongoDB dati.

Datu bāzes nosaukums: EmployeeDB

Kolekcijas nosaukums: darbinieks

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. NPM moduļu instalēšana

Lai piekļūtu Mongo no Node lietojumprogrammas, jums ir nepieciešams draiveris. Ir pieejami vairāki Mongo draiveri, taču MongoDB ir viens no populārākajiem. Lai instalētu MongoDB moduli, palaidiet zemāk esošo komandu

npm instalēt mongodb

  1. Savienojuma izveide un slēgšana ar MongoDB datu bāzi. Zemāk esošajā koda fragmentā parādīts, kā izveidot un aizvērt savienojumu ar MongoDB datu bāzi.

Koda skaidrojums:

  1. Vispirms ir jāiekļauj mongoose modulis, kas tiek veikts, izmantojot funkciju pieprasīt. Kad šis modulis ir izveidots, mēs varam izmantot šajā modulī pieejamās nepieciešamās funkcijas, lai izveidotu savienojumus ar datu bāzi.
  2. Pēc tam mēs norādām mūsu savienojuma virkni ar datu bāzi. Savienojuma virknē ir 3 galvenās vērtības, kuras tiek nodotas.
  • Pirmais ir “mongodb”, kas norāda, ka mēs izveidojam savienojumu ar mongoDB datu bāzi.
  • Nākamais ir "localhost", kas nozīmē, ka mēs izveidojam savienojumu ar vietējās mašīnas datu bāzi.
  • Nākamais ir 'EmployeeDB', kas ir mūsu MongoDB datu bāzē definētās datu bāzes nosaukums.
  1. Nākamais solis ir faktiski izveidot savienojumu ar mūsu datu bāzi. Savienojuma funkcija iekļauj mūsu URL, un tai ir iespēja norādīt atzvanīšanas funkciju. Tas tiks izsaukts, kad tiks atvērts savienojums ar datu bāzi. Tas dod mums iespēju uzzināt, vai datu bāzes savienojums bija veiksmīgs vai nē.
  2. Funkcijā konsolei mēs rakstām virkni "Savienojums izveidots", lai norādītu, ka ir izveidots veiksmīgs savienojums.
  3. Visbeidzot, mēs aizveram savienojumu, izmantojot db.close paziņojumu.

Ja iepriekšminētais kods tiek izpildīts pareizi, virkne "Savienots" tiks ierakstīta konsolē, kā parādīts zemāk.

  1. Datu pieprasīšana MongoDB datu bāzē - izmantojot MongoDB draiveri, mēs varam arī iegūt datus no MongoDB datu bāzes.

    Zemāk esošajā sadaļā tiks parādīts, kā mēs varam izmantot draiveri, lai no EmployeeDB datu bāzes iegūtu visus dokumentus no mūsu darbinieku kolekcijas . Šī ir kolekcija mūsu MongoDB datu bāzē, kurā ir visi ar darbiniekiem saistītie dokumenti. Katram dokumentam ir objekta ID, darbinieka vārds un darbinieka ID, lai definētu dokumenta vērtības.

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

Koda skaidrojums:

  1. Pirmajā solī mēs izveidojam kursoru (kursors ir rādītājs, ko izmanto, lai norādītu uz dažādiem ierakstiem, kas iegūti no datu bāzes. Pēc tam kursoru izmanto, lai atkārtotu dažādus datu bāzes ierakstus. Šeit mēs definējam mainīgā nosaukums, ko sauc par kursoru, kas tiks izmantots, lai saglabātu rādītāju ierakstiem, kas iegūti no datu bāzes.), kas norāda uz ierakstiem, kas tiek ielādēti no MongoDb kolekcijas. Mums ir arī iespēja norādīt kolekciju “Darbinieks”, no kuras iegūt ierakstus. Funkcija find () tiek izmantota, lai norādītu, ka mēs vēlamies izgūt visus dokumentus no MongoDB kolekcijas.

  2. Tagad mēs veicam iterāciju, izmantojot mūsu kursoru, un katram dokumentam kursorā mēs veiksim funkciju.

  3. Mūsu funkcija ir vienkārši printēt katra dokumenta saturu konsolē.

Piezīme: - Ir iespējams arī ielādēt konkrētu ierakstu no datu bāzes. To var izdarīt, norādot meklēšanas nosacījumu funkcijā find (). Piemēram, pieņemsim, ka, ja jūs vienkārši gribējāt ienest ierakstu, kura darbinieka vārds ir Guru99, šo paziņojumu var rakstīt šādi

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

Ja iepriekšminētais kods ir veiksmīgi izpildīts, konsolē tiks parādīta šāda izeja.

Izeja:

No izejas

  • Jūs varēsiet skaidri redzēt, ka visi kolekcijas dokumenti ir izgūti. Tas ir iespējams, izmantojot mongoDB savienojuma (db) metodi find () un iterējot visus dokumentus, izmantojot kursoru.
  1. Dokumentu ievietošana kolekcijā - dokumentus var ievietot kolekcijā, izmantojot metodi InsertOne, ko nodrošina MongoDB bibliotēka. Zemāk redzamais koda fragments parāda, kā mēs varam ievietot dokumentu 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"});});

Koda skaidrojums:

  1. Šeit mēs izmantojam metodi InsertOne no MongoDB bibliotēkas, lai dokumentu ievietotu darbinieku kolekcijā.
  2. Mēs precizējam dokumenta informāciju par to, kas jāievieto darbinieku kolekcijā.

Ja tagad pārbaudīsit savas MongoDB datu bāzes saturu, jūs atradīsit ierakstu ar Employeeid 4 un EmployeeName "NewEmployee", kas ievietots Employee kolekcijā.

Piezīme: Konsolē netiks rādīta neviena izeja, jo ieraksts tiek ievietots datu bāzē, un šeit nevar parādīt nevienu izvadi.

Lai pārbaudītu, vai dati ir pareizi ievietoti datu bāzē, MongoDB ir jāizpilda šādas komandas

  1. Izmantojiet EmployeeDB
  2. db.Employee.find ({Employeeid: 4})

Pirmais paziņojums nodrošina, ka esat izveidojis savienojumu ar EmployeeDb datu bāzi. Otrajā paziņojumā tiek meklēts ieraksts, kura darbinieka ID ir 4.

  1. Dokumentu atjaunināšana kolekcijā - dokumentus var atjaunināt kolekcijā, izmantojot metodi updateOne, ko nodrošina MongoDB bibliotēka. Zemāk esošajā koda fragmentā parādīts, kā atjaunināt dokumentu mongoDB kolekcijā.

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

Koda skaidrojums:

  1. Šeit mēs izmantojam MongoDB bibliotēkas metodi "updateOne", kuru izmanto, lai atjauninātu dokumentu mongoDB kolekcijā.
  2. Mēs precizējam meklēšanas kritērijus, kurš dokuments ir jāatjaunina. Mūsu gadījumā mēs vēlamies atrast dokumentu, kura EmployeeName ir “NewEmployee”.
  3. Pēc tam mēs vēlamies iestatīt dokumenta EmployeeName vērtību no “NewEmployee” uz “Mohan”.

Ja tagad pārbaudīsit savas MongoDB datu bāzes saturu, ierakstu ar Employeeid of 4 un EmployeeName of "Mohan" atradīsit atjauninātu Employee kolekcijā.

Lai pārbaudītu, vai dati ir pareizi atjaunināti datu bāzē, MongoDB ir jāizpilda šādas komandas

  1. Izmantojiet EmployeeDB
  2. db.Employee.find ({Employeeid: 4})

Pirmais paziņojums nodrošina, ka esat izveidojis savienojumu ar EmployeeDb datu bāzi. Otrajā paziņojumā tiek meklēts ieraksts, kura darbinieka ID ir 4.

  1. Dokumentu dzēšana kolekcijā - dokumentus var izdzēst kolekcijā, izmantojot metodi "deleteOne", ko nodrošina MongoDB bibliotēka. Zemāk esošajā koda fragmentā parādīts, kā izdzēst dokumentu mongoDB kolekcijā.

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

Koda skaidrojums:

  1. Šeit mēs izmantojam metodi "deleteOne" no MongoDB bibliotēkas, kuru izmanto, lai izdzēstu dokumentu mongoDB kolekcijā.
  2. Mēs precizējam meklēšanas kritērijus, kurš dokuments ir jāizdzēš. Mūsu gadījumā mēs vēlamies atrast dokumentu, kura EmployeeName ir “Mohan”, un izdzēst šo dokumentu.

Ja tagad pārbaudīsit savas MongoDB datu bāzes saturu, atradīsit ierakstu ar Employeeid of 4 un EmployeeName of "Mohan", kas izdzēsts no Employee kolekcijas.

Lai pārbaudītu, vai dati ir pareizi atjaunināti datu bāzē, MongoDB ir jāizpilda šādas komandas

  1. Izmantojiet EmployeeDB
  2. db.Employee.find ()

Pirmais paziņojums nodrošina, ka esat izveidojis savienojumu ar EmployeeDb datu bāzi. Otrajā paziņojumā tiek meklēti un parādīti visi ieraksti darbinieku kolekcijā. Šeit jūs varat redzēt, vai ieraksts ir izdzēsts vai nē.

Kā izveidot mezglu ekspress lietotni ar MongoDB satura glabāšanai un apkalpošanai

Mūsdienās ir diezgan izplatīta lietojumprogrammas veidošana, izmantojot gan express, gan MongoDB kombināciju.

Strādājot ar JavaScript tīmekļa lietojumprogrammām, šeit parasti tiek izmantots termins MEAN stack.

  • Termins MEAN kaudze attiecas uz JavaScript balstītu tehnoloģiju kolekciju, ko izmanto tīmekļa lietojumprogrammu izstrādei.
  • MEAN ir MongoDB, ExpressJS, AngularJS un Node.js saīsinājums.

Tāpēc vienmēr ir labi saprast, kā Node.js un MongoDB darbojas kopā, lai piegādātu lietojumprogrammas, kas mijiedarbojas ar aizmugures datubāzēm.

Apskatīsim vienkāršu piemēru, kā mēs kopā varam izmantot "express" un "MongoDB". Mūsu piemērā tiks izmantota tā pati darbinieku kolekcija MongoDB EmployeeDB datu bāzē.

Tagad mēs integrēsim programmu Express, lai parādītu datus mūsu tīmekļa vietnē, kad lietotājs to pieprasa. Kad mūsu lietojumprogramma darbojas vietnē Node.js, iespējams, būs jāpārlūko URL: http: // localhost: 3000 / Employeeid .

Kad lapa tiek palaista, tiks parādīts viss darbinieka ID kolekcijā Darbinieki. Tātad, redzēsim koda fragmentu sadaļās, kas ļaus mums to sasniegt.

1. solis. Definējiet visas bibliotēkas, kas jāizmanto mūsu lietojumprogrammā, kas mūsu gadījumā ir gan MongoDB, gan ekspress bibliotēka.

Koda skaidrojums:

  1. Mēs definējam mūsu "ekspress" bibliotēku, kas tiks izmantota mūsu lietojumprogrammā.
  2. Mēs definējam mūsu "ekspress" bibliotēku, kas tiks izmantota mūsu lietojumprogrammā, lai izveidotu savienojumu ar mūsu MongoDB datu bāzi.
  3. Šeit mēs definējam mūsu datubāzes URL, ar kuru izveidot savienojumu.
  4. Visbeidzot, mēs definējam virkni, kas tiks izmantota, lai saglabātu mūsu darbinieku ID kolekciju, kas vēlāk jāparāda pārlūkprogrammā.

2. solis . Šajā solī mēs tagad iegūsim visus ierakstus savā “Darbinieku” kolekcijā un attiecīgi ar tiem strādāsim.

Koda skaidrojums:

  1. Mēs izveidojam maršrutu uz mūsu lietojumprogrammu ar nosaukumu 'Employeeid'. Tāpēc ikreiz, kad kāds pārlūko mūsu lietojumprogrammas vietni http: // localhost: 3000 / Employeeid , tiks izpildīts šim maršrutam definētais koda fragments.
  2. Šeit mēs iegūstam visus ierakstus mūsu kolekcijā “Darbinieks”, izmantojot komandu db.collection (“Darbinieks”. Find (). Pēc tam mēs piešķiram šo kolekciju mainīgajam, ko sauc par kursoru. Izmantojot šo kursora mainīgo, mēs varēsim pārlūkot visus kolekcijas ierakstus.
  3. Tagad mēs izmantojam cursor.each () funkciju, lai pārvietotos pa visiem mūsu kolekcijas ierakstiem. Katram ierakstam mēs definēsim koda fragmentu, kas jādara, kad katram ierakstam ir piekļuve.
  4. Visbeidzot, mēs redzam, ka, ja atgrieztais ieraksts nav nulle, tad darbinieks tiek ņemts, izmantojot komandu "item.Employeeid". Pārējā koda daļa ir tikai pareiza HTML koda izveidošana, kas ļaus mūsu rezultātus pareizi parādīt pārlūkprogrammā.

3. solis . Šajā solī mēs nosūtīsim savu produkciju uz tīmekļa lapu un liksim mūsu lietojumprogrammai klausīties noteiktā ostā.

Koda skaidrojums:

  1. Šeit mēs nosūtām visu saturu, kas tika izveidots iepriekšējā solī, uz mūsu vietni. 'Res' parametrs ļauj mums kā atbildi nosūtīt saturu uz mūsu vietni.
  2. Mēs liekam visai mūsu Node.js lietojumprogrammai klausīties 3000 ostā.

Izeja:

No izejas

  • Tas skaidri parāda, ka visi darbinieka krājumi Employee kolekcijā ir izgūti. Tas ir tāpēc, ka mēs izmantojam MongoDB draiveri, lai izveidotu savienojumu ar datu bāzi un izgūtu visus darbinieku ierakstus, un pēc tam lietoja "express", lai parādītu ierakstus.

Šeit ir kods jūsu atsaucei

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

Piezīme: cursor.each varbūt ir novecojis, pamatojoties uz jūsu MongoDB draivera versiju. Lai apietu problēmu, pirms cursor.each varat pievienot // noinspection JSDeprecatedSymbols. Alternatīvi, jūs varat izmantot forEach. Zemāk ir koda paraugs, izmantojot 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() {});

Kopsavilkums

  • Node.js tiek izmantots kopā ar NoSQL datu bāzēm, lai izveidotu daudz mūsdienu tīmekļa lietojumprogrammu. Dažas no izmantotajām datubāzēm ir MySQL un MongoDB.
  • Viens no parastajiem moduļiem, ko izmanto darbam ar MongoDB datu bāzēm, ir modulis ar nosaukumu MongoDB. Šis modulis ir instalēts, izmantojot Node pakotņu pārvaldnieku.
  • Izmantojot moduli MongoDB, ir iespējams vaicāt ierakstus kolekcijā un veikt parastās atjaunināšanas, dzēšanas un ievietošanas darbības.
  • Visbeidzot, viena no mūsdienu praksēm ir ekspress ietvara izmantošana kopā ar MongoDB mūsdienu lietojumprogrammu piegādei. Express ietvars var izmantot datus, ko atgriezis MongoDB draiveris, un attiecīgi attēlot datus lietotājam tīmekļa vietnē.