În principal, toate aplicațiile web moderne au un fel de sistem de stocare a datelor în backend. De exemplu, dacă luați cazul unei aplicații de cumpărături web, date precum prețul unui articol ar fi stocate în baza de date.
Cadrul Node js poate funcționa cu baze de date atât cu baze de date relaționale (cum ar fi Oracle și MS SQL Server), cât și cu baze de date non-relaționale (cum ar fi MongoDB). În acest tutorial, vom vedea cum putem folosi baze de date din aplicațiile Node js.
În acest tutorial, veți învăța-
- Node.js și baze de date NoSQL
- Folosind MongoDB și Node.js
- Cum să construiți o aplicație de nod expres cu MongoDB pentru a stoca și difuza conținut
Node.js și baze de date NoSQL
De-a lungul anilor, baza de date NoSQL, cum ar fi MongoDB și MySQL, au devenit destul de populare ca baze de date pentru stocarea datelor. Capacitatea acestor baze de date de a stoca orice tip de conținut și în special în orice tip de format este ceea ce face aceste baze de date atât de faimoase.
Node.js are capacitatea de a lucra atât cu MySQL, cât și cu MongoDB ca baze de date. Pentru a utiliza oricare dintre aceste baze de date, trebuie să descărcați și să utilizați modulele necesare folosind managerul de pachete Node.
Pentru MySQL, modulul necesar se numește „mysql”, iar pentru utilizarea MongoDB, modulul necesar pentru a fi instalat este „Mongoose”.
Cu aceste module, puteți efectua următoarele operațiuni în Node.js
- Gestionați punerea în comun a conexiunilor - Aici puteți specifica numărul de conexiuni la baza de date MySQL care ar trebui menținute și salvate de Node.js.
- Creați și închideți o conexiune la o bază de date. În ambele cazuri, puteți oferi o funcție de apel invers, care poate fi apelată ori de câte ori sunt executate metodele de conectare „creați” și „închideți”.
- Interogările pot fi executate pentru a obține date din bazele de date respective pentru a prelua date.
- Manipularea datelor, cum ar fi inserarea datelor, ștergerea și actualizarea datelor pot fi, de asemenea, realizate cu aceste module.
Pentru subiectele rămase, vom analiza modul în care putem lucra cu bazele de date MongoDB din cadrul Node.js.
Folosind MongoDB și Node.js
După cum sa discutat în subiectul anterior, MongoDB este una dintre cele mai populare baze de date utilizate împreună cu Node.js.
În timpul acestui capitol, vom vedea
Cum putem stabili conexiuni cu o bază de date MongoDB
Cum putem efectua operațiunile normale de citire a datelor dintr-o bază de date, precum și inserarea, ștergerea și actualizarea înregistrărilor într-o bază de date MongoDB.
În scopul acestui capitol, să presupunem că avem datele MongoDB de mai jos.
Numele bazei de date: EmployeeDB
Numele colecției: Angajat
Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
- Instalarea modulelor NPM
Aveți nevoie de un driver pentru a accesa Mongo din aplicația Node. Există mai multe drivere Mongo disponibile, dar MongoDB este printre cele mai populare. Pentru a instala modulul MongoDB, rulați comanda de mai jos
npm instalați mongodb
- Crearea și închiderea unei conexiuni la o bază de date MongoDB. Fragmentul de cod de mai jos arată cum să creați și să închideți o conexiune la o bază de date MongoDB.
Explicatie cod:
- Primul pas este de a include modulul de mangustă, care se realizează prin intermediul funcției require. Odată ce acest modul este instalat, putem folosi funcțiile necesare disponibile în acest modul pentru a crea conexiuni la baza de date.
- În continuare, specificăm șirul nostru de conexiune la baza de date. În șirul de conectare, sunt trecute 3 valori cheie.
- Primul este „mongodb” care specifică faptul că ne conectăm la o bază de date mongoDB.
- Următorul este „localhost” ceea ce înseamnă că ne conectăm la o bază de date de pe mașina locală.
- Următorul este „EmployeeDB”, care este numele bazei de date definite în baza noastră de date MongoDB.
- Următorul pas este să ne conectăm efectiv la baza noastră de date. Funcția de conectare include URL-ul nostru și are posibilitatea de a specifica o funcție de apel invers. Acesta va fi apelat când conexiunea este deschisă la baza de date. Acest lucru ne oferă posibilitatea de a ști dacă conexiunea la baza de date a avut succes sau nu.
- În funcție, scriem șirul „Conexiune stabilită” în consolă pentru a indica faptul că a fost creată o conexiune reușită.
- În cele din urmă, închidem conexiunea folosind instrucțiunea db.close.
Dacă codul de mai sus este executat corect, șirul „Conectat” va fi scris în consolă așa cum se arată mai jos.
- Interogarea datelor dintr-o bază de date MongoDB - Folosind driverul MongoDB putem prelua și date din baza de date MongoDB.
Secțiunea de mai jos va arăta cum putem folosi driverul pentru a prelua toate documentele din colecția noastră de angajați din baza noastră de date EmployeeDB. Aceasta este colecția din baza noastră de date MongoDB, care conține toate documentele legate de angajați. Fiecare document are un ID obiect, numele angajatului și un ID angajat pentru a defini valorile documentului.
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);});});
Explicatie cod:
-
În primul pas, creăm un cursor (Un cursor este un indicator care este utilizat pentru a indica diversele înregistrări preluate dintr-o bază de date. Cursorul este apoi folosit pentru a itera prin diferitele înregistrări din baza de date. Aici definim un nume variabil numit cursor care va fi folosit pentru a stoca indicatorul către înregistrările preluate din baza de date.) care indică înregistrările preluate din colecția MongoDb. De asemenea, avem posibilitatea de a specifica colecția „Angajat” din care să preluăm înregistrările. Funcția find () este utilizată pentru a specifica că dorim să preluăm toate documentele din colecția MongoDB.
-
Acum iterăm prin cursorul nostru și pentru fiecare document din cursor vom executa o funcție.
-
Funcția noastră este pur și simplu de a imprima conținutul fiecărui document pe consolă.
Notă: - De asemenea, este posibil să preluați o anumită înregistrare dintr-o bază de date. Acest lucru se poate face prin specificarea condiției de căutare în funcția find (). De exemplu, să presupunem că dacă ați dorit doar să preluați înregistrarea care are numele angajatului ca Guru99, atunci această declarație poate fi scrisă după cum urmează
var cursor=db.collection('Employee').find({EmployeeName: "guru99"})
Dacă codul de mai sus este executat cu succes, următoarea ieșire va fi afișată în consola dvs.
Ieșire:
Din ieșire,
- Veți putea vedea clar că toate documentele din colecție sunt recuperate. Acest lucru este posibil utilizând metoda find () a conexiunii mongoDB (db) și iterând prin toate documentele folosind cursorul.
- Inserarea documentelor într-o colecție - Documentele pot fi inserate într-o colecție utilizând metoda insertOne furnizată de biblioteca MongoDB. Fragmentul de cod de mai jos arată cum putem insera un document într-o colecție mongoDB.
var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').insertOne({Employeeid: 4,EmployeeName: "NewEmployee"});});
Explicatie cod:
- Aici folosim metoda insertOne din biblioteca MongoDB pentru a insera un document în colecția Angajați.
- Specificăm detaliile documentului despre ceea ce trebuie inserat în colecția angajaților.
Dacă verificați acum conținutul bazei de date MongoDB, veți găsi înregistrarea cu Employeeid din 4 și EmployeeName din "NewEmployee" inserate în colecția Employee.
Notă: Consola nu va afișa nicio ieșire deoarece înregistrarea este introdusă în baza de date și nu poate fi afișată nicio ieșire aici.
Pentru a verifica dacă datele au fost inserate corect în baza de date, trebuie să executați următoarele comenzi în MongoDB
- Utilizați EmployeeDB
- db.Employee.find ({Employeeid: 4})
Prima declarație vă asigură că sunteți conectat la baza de date EmployeeDb. A doua declarație caută înregistrarea care are codul de angajat 4.
- Actualizarea documentelor dintr-o colecție - Documentele pot fi actualizate într-o colecție utilizând metoda updateOne furnizată de biblioteca MongoDB. Fragmentul de cod de mai jos arată cum să actualizați un document într-o colecție mongoDB.
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"}});});
Explicatie cod:
- Aici folosim metoda „updateOne” din biblioteca MongoDB, care este utilizată pentru actualizarea unui document dintr-o colecție mongoDB.
- Specificăm criteriile de căutare ale documentului care trebuie actualizat. În cazul nostru, dorim să găsim documentul care are numele angajat al „NewEmployee”.
- Vrem apoi să setăm valoarea Numelui Angajaților documentului din „NewEmployee” la „Mohan”.
Dacă verificați acum conținutul bazei de date MongoDB, veți găsi înregistrarea cu Employeeid din 4 și EmployeeName din "Mohan" actualizată în colecția Employee.
Pentru a verifica dacă datele au fost actualizate corect în baza de date, trebuie să executați următoarele comenzi în MongoDB
- Utilizați EmployeeDB
- db.Employee.find ({Employeeid: 4})
Prima declarație vă asigură că sunteți conectat la baza de date EmployeeDb. A doua declarație caută înregistrarea care are codul de angajat 4.
- Ștergerea documentelor dintr-o colecție - Documentele pot fi șterse într-o colecție folosind metoda „deleteOne” furnizată de biblioteca MongoDB. Fragmentul de cod de mai jos arată cum să ștergeți un document dintr-o colecție mongoDB.
var MongoClient = require('mongodb').MongoClient;var url = 'mongodb://localhost/EmployeeDB';MongoClient.connect(url, function(err, db) {db.collection('Employee').deleteOne({"EmployeeName": "Mohan"});});
Explicatie cod:
- Aici folosim metoda „deleteOne” din biblioteca MongoDB, care este utilizată pentru a șterge un document dintr-o colecție mongoDB.
- Precizăm criteriile de căutare pentru care document trebuie șters. În cazul nostru, dorim să găsim documentul care are numele de angajat „Mohan” și să ștergem acest document.
Dacă verificați acum conținutul bazei de date MongoDB, veți găsi înregistrarea cu Employeeid din 4 și EmployeeName din „Mohan” șterse din colecția Employee.
Pentru a verifica dacă datele au fost actualizate corect în baza de date, trebuie să executați următoarele comenzi în MongoDB
- Utilizați EmployeeDB
- db.Employee.find ()
Prima declarație vă asigură că sunteți conectat la baza de date EmployeeDb. A doua declarație caută și afișează toate înregistrările din colecția angajaților. Aici puteți vedea dacă înregistrarea a fost ștearsă sau nu.
Cum să construiți o aplicație de nod expres cu MongoDB pentru a stoca și difuza conținut
Construirea unei aplicații cu o combinație atât de expresie, cât și de MongoDB este destul de obișnuită în zilele noastre.
Când lucrați cu aplicații bazate pe JavaScript, în mod normal se va face aici termenul MEAN stack.
- Termenul stivă MEAN se referă la o colecție de tehnologii bazate pe JavaScript utilizate pentru a dezvolta aplicații web.
- MEAN este un acronim pentru MongoDB, ExpressJS, AngularJS și Node.js.
Prin urmare, este întotdeauna bine să înțelegem cum Node.js și MongoDB funcționează împreună pentru a furniza aplicații care interacționează cu bazele de date backend.
Să ne uităm la un exemplu simplu al modului în care putem folosi „express” și „MongoDB” împreună. Exemplul nostru va folosi aceeași colecție de angajați din baza de date MongoDB EmployeeDB.
Acum vom încorpora Express pentru a afișa datele pe pagina noastră web atunci când acestea sunt solicitate de utilizator. Când aplicația noastră rulează pe Node.js, este posibil să fie nevoie să navigați la adresa URL http: // localhost: 3000 / Employeeid .
Când pagina este lansată, va fi afișat tot ID-ul angajatului din colecția Angajați. Deci, să vedem fragmentul de cod în secțiuni care ne vor permite să realizăm acest lucru.
Pasul 1) Definiți toate bibliotecile care trebuie utilizate în aplicația noastră, care în cazul nostru este atât biblioteca MongoDB, cât și biblioteca expresă.
Explicatie cod:
- Definim biblioteca noastră „expresă”, care va fi utilizată în aplicația noastră.
- Definim biblioteca noastră „expresă”, care va fi utilizată în aplicația noastră pentru conectarea la baza noastră de date MongoDB.
- Aici definim adresa URL a bazei noastre de date la care să ne conectăm.
- În cele din urmă, definim un șir care va fi folosit pentru a stoca colecția noastră de ID de angajat care trebuie afișată în browser ulterior.
Pasul 2) În acest pas, vom obține acum toate înregistrările din colecția noastră „Angajați” și vom lucra cu acestea în consecință.
Explicatie cod:
- Creăm o rută către aplicația noastră numită „Employeeid”. Deci, ori de câte ori cineva navighează la http: // localhost: 3000 / Employeeid al aplicației noastre, va fi executat fragmentul de cod definit pentru această rută.
- Aici obținem toate înregistrările din colecția noastră „Angajat” prin comanda db.collection („Angajat”). Find (). Atribuim apoi această colecție unei variabile numite cursor. Folosind această variabilă de cursor, vom putea naviga prin toate înregistrările colecției.
- Acum folosim funcția cursor.each () pentru a naviga prin toate înregistrările colecției noastre. Pentru fiecare înregistrare, vom defini un fragment de cod despre ce să facem când fiecare înregistrare este accesată.
- În cele din urmă, vedem că, dacă înregistrarea returnată nu este nulă, atunci luăm angajatul prin comanda „item.Employeeid”. Restul codului este doar pentru a construi un cod HTML adecvat, care să permită afișarea corectă a rezultatelor noastre în browser.
Pasul 3) În acest pas, vom trimite rezultatele noastre pe pagina web și vom face ca aplicația noastră să fie ascultată pe un anumit port.
Explicatie cod:
- Aici trimitem întregul conținut care a fost construit în etapa anterioară către pagina noastră web. Parametrul „res” ne permite să trimitem conținut către pagina noastră web ca răspuns.
- Ne ascultăm întreaga aplicație Node.js pe portul 3000.
Ieșire:
Din ieșire,
- Arată în mod clar că au fost recuperate toate angajatele din colecția Angajați. Acest lucru se datorează faptului că folosim driverul MongoDB pentru a ne conecta la baza de date și pentru a prelua toate înregistrările angajaților și ulterior am folosit „express” pentru a afișa înregistrările.
Iată codul pentru referință
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() {});
Notă: cursor.each poate fi depreciat pe baza versiunii driverului MongoDB. Puteți adăuga // noinspection JSDeprecatedSymbols înainte de cursor.each pentru a eluda problema. Alternativ, puteți utiliza pentru fiecare. Mai jos este exemplul de cod folosind 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() {});
rezumat
- Node.js este utilizat împreună cu bazele de date NoSQL pentru a construi o mulțime de aplicații web moderne. Unele dintre bazele de date comune utilizate sunt MySQL și MongoDB.
- Unul dintre modulele comune utilizate pentru lucrul cu bazele de date MongoDB este un modul numit „MongoDB”. Acest modul este instalat prin intermediul managerului de pachete Node.
- Cu modulul MongoDB, este posibil să căutați înregistrări dintr-o colecție și să efectuați operațiuni normale de actualizare, ștergere și inserare.
- În cele din urmă, una dintre practicile moderne este utilizarea cadrului expres împreună cu MongoDB pentru a furniza aplicații moderne. Cadrul Express poate utiliza datele returnate de driverul MongoDB și poate afișa datele utilizatorului în pagina web în consecință.