Node.js MongoDB Tutorial cu exemple

โšก Rezumat inteligent

Node.js MongoDB Integrarea permite unei aplicaศ›ii Node sฤƒ se conecteze la o bazฤƒ de date NoSQL, sฤƒ execute operaศ›iuni CRUD ศ™i sฤƒ expunฤƒ รฎnregistrฤƒri live prin rute Express, utilizรขnd driverul nativ mongodb รฎmpreunฤƒ cu Mongoose pentru modelarea datelor bazatฤƒ pe scheme.

  • ๐Ÿ—„๏ธ Alegerea bazei de date: Node.js se conecteazฤƒ la motoare relaศ›ionale precum MySQL ศ™i motoare NoSQL precum MongoDB prin module npm dedicate.
  • ๐Ÿ“ฆ Configurarea driverului: Rulaศ›i comanda npm install mongodb pentru a adฤƒuga driverul nativ MongoClient la un proiect Node.js.
  • ๐Ÿ”Œ conectarea: Deschideศ›i o legฤƒturฤƒ cฤƒtre baza de date cu MongoClient.connect ศ™i o funcศ›ie de apel invers sau cu modelul modern async/await client.connect().
  • ๐Ÿ” Citirea datelor: Foloseศ™te find() ศ™i un cursor pentru a parcurge fiecare document dintr-un MongoDB de colectare.
  • โœ๏ธ Scrierea datelor: Aplicaศ›i comenzile insertOne, updateOne ศ™i deleteOne pentru a adฤƒuga, edita ศ™i elimina documente รฎn siguranศ›ฤƒ.
  • ๐Ÿงฉ ศ˜ofer vs. ODM: Alegeศ›i driverul uศ™or mongodb pentru interogฤƒri brute sau Mongoose atunci cรขnd validarea schemei este importantฤƒ.
  • ๐ŸŒ Integrare expresฤƒ: Asociaศ›i rutele Express cu MongoDB interogฤƒri astfel รฎncรขt o solicitare a browserului sฤƒ returneze รฎnregistrฤƒri live รฎn baza de date.

Majoritatea aplicaศ›iilor web moderne au un fel de sistem de stocare a datelor รฎn backend. De exemplu, dacฤƒ luฤƒm cazul unui magazin onlineping รŽn aplicaศ›ie, 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 relaศ›ii (cum ar fi Oracle ศ™i MS SQL Server) ศ™i baze de date non-relaศ›ionale (cum ar fi MongoDB). รŽn acest tutorial, vom vedea cum putem folosi bazele de date din aplicaศ›iile Node js.

Node.js ศ™i baze de date NoSQL

De-a lungul anilor, bazele de date NoSQL, cum ar fi MongoDB ศ™i baze de date relaศ›ionale, cum ar fi MySQL au devenit destul de populare ca baze de date pentru stocarea datelor. Capacitatea acestor baze de date de a stoca orice tip de date ศ™i รฎn special รฎn orice tip de format este ceea ce face ca aceste baze de date sฤƒ fie utilizate atรขt de pe scarฤƒ largฤƒ.

Node.js are capacitatea de a lucra cu ambele MySQL ศ™i 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 utilizรขnd managerul de pachete Node.

Pentru MySQL, modulul necesar se numeศ™te โ€žmysqlโ€. Pentru MongoDB, dezvoltatorii pot instala fie versiunea nativฤƒ oficialฤƒ MongoDB driver, care este pachetul utilizat รฎn exemplele de cod din acest articol, sau o bibliotecฤƒ bazatฤƒ pe scheme, cum ar fi Mangustฤƒ odatฤƒ ce aplicaศ›ia are nevoie de mai multฤƒ structurฤƒ.

Cu aceste module, puteศ›i efectua urmฤƒtoarele operaศ›ii รฎn Node.js

  1. Gestionaศ›i gruparea conexiunilor - Aici puteศ›i specifica numฤƒrul de MySQL conexiuni la baze de date care ar trebui menศ›inute ศ™i salvate de Node.js.
  2. Creaศ›i ศ™i รฎnchideศ›i o conexiune la o bazฤƒ de date. รŽn ambele cazuri, puteศ›i furniza o funcศ›ie de apel invers care poate fi apelatฤƒ ori de cรขte ori sunt executate metodele de conexiune โ€žcreareโ€ ศ™i โ€žรฎnchidereโ€.
  3. Interogฤƒrile pot fi executate pentru a obศ›ine date din bazele de date respective pentru a prelua date.
  4. Manipularea datelor, cum ar fi inserarea datelor, ศ™tergerea ศ™i actualizarea datelor, poate fi realizatฤƒ ศ™i cu aceste module.

Pentru subiectele rฤƒmase, ne vom uita la modul รฎn care putem lucra MongoDB baze de date din interior Node.js, รฎncepรขnd cu o comparaศ›ie rapidฤƒ a celor douฤƒ modalitฤƒศ›i cele mai comune de a vorbi cu MongoDB dintr-un proiect Node.js.

MongoDB Driver nativ vs. Mongoose รฎn Node.js

Numele modulelor menศ›ionate mai sus pot fi confuze, deoarece Node.js oferฤƒ douฤƒ modalitฤƒศ›i diferite de comunicare cu MongoDBnativul MongoDB ศ™oferul ศ™i Mangustฤƒ ODM (biblioteca de modelare a datelor despre obiecte). Fiecare exemplu de cod din acest articol utilizeazฤƒ driverul nativ, instalat cu npm instalaศ›i mongodb ศ™i accesat prin MongoClientMongoose รฎncorporeazฤƒ acelaศ™i driver ศ™i adaugฤƒ definiศ›ii de schemฤƒ, validare ศ™i metode de model reutilizabile, ceea ce se potriveศ™te aplicaศ›iilor mai mari care au nevoie de o structurฤƒ de date previzibilฤƒ รฎn mai multe colecศ›ii. รŽnศ›elegerea diferenศ›ei รฎn avans evitฤƒ confuzia la instalarea pachetelor sau la citirea altor Node.js. MongoDB exemple online. Tabelul de mai jos comparฤƒ ambele opศ›iuni, astfel รฎncรขt un dezvoltator sฤƒ poatฤƒ alege instrumentul potrivit pentru un anumit proiect.

Aspect Driver nativ mongodb Mangustฤƒ
Instalare npm instalaศ›i mongodb npm instaleazฤƒ mangusta
Aplicarea schemei Niciunul, documentele rฤƒmรขn flexibile Definit printr-un obiect Schema
Curbฤƒ de รฎnvฤƒศ›are Mai jos, mai aproape de brut MongoDB interogฤƒri Superior, adaugฤƒ propriul strat API
Cel mai bun pentru Scripturi mici ศ™i cod sensibil la performanศ›ฤƒ Aplicaศ›ii mai mari cu modele de date consistente

Sfat: Rฤƒmรขi la driverul nativ รฎn timp ce รฎnveศ›i nucleul MongoDB comenzi, apoi treceศ›i la Mangustฤƒ odatฤƒ ce aplicaศ›ia necesitฤƒ validarea schemei รฎn mai multe colecศ›ii.

Utilizarea MongoDB ศ™i Node.js

Odatฤƒ clarificatฤƒ terminologia, restul acestui articol foloseศ™te exclusiv driverul nativ, exact aศ™a cum apare รฎn exemplele de cod de mai jos. Aศ™a cum s-a discutat รฎn subiectul anterior, MongoDB este una dintre cele mai populare baze de date utilizate รฎmpreunฤƒ cu Node.js.

รŽn acest capitol, vom vedea cum sฤƒ stabilim conexiuni cu un MongoDB baza de date ศ™i cum se efectueazฤƒ operaศ›iunile normale de citire a datelor dintr-o bazฤƒ de date, precum ศ™i inserarea, ศ™tergerea ศ™i actualizarea รฎnregistrฤƒrilor รฎntr-o MongoDB Bazฤƒ de date.

รŽn scopul acestui capitol, sฤƒ presupunem cฤƒ avem cele de mai jos MongoDB date รฎn loc.

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},
}
  1. Instalarea modulelor NPM

Aveศ›i nevoie de un driver pentru a accesa Mongo dintr-o aplicaศ›ie Node. Existฤƒ o serie de drivere Mongo disponibile, dar MongoDB este printre cele mai populare. Pentru a instala MongoDB modul, rulaศ›i comanda de mai jos

npm instalaศ›i mongodb

  1. Crearea ศ™i รฎnchiderea unei conexiuni la a MongoDB Bazฤƒ de date. Fragmentul de cod de mai jos aratฤƒ cum sฤƒ creaศ›i ศ™i sฤƒ รฎnchideศ›i o conexiune la a MongoDB Bazฤƒ de date.

Code Explicaลฃie:

  1. Primul pas este includerea MongoDB modulul driver, care se realizeazฤƒ prin funcศ›ia require. Odatฤƒ ce acest modul este instalat, putem utiliza funcศ›iile necesare disponibile รฎn acest modul pentru a crea conexiuni la baza de date.
  2. Apoi, specificฤƒm ศ™irul nostru de conexiune la baza de date. รŽn ศ™irul de conectare, existฤƒ 3 valori cheie care sunt transmise.
  • 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 pe maศ™ina localฤƒ.
  • Urmฤƒtorul este โ€žEmployeeDBโ€, care este numele bazei de date definite รฎn nostru MongoDB Bazฤƒ de date.
  1. Urmฤƒtorul pas este conectarea efectivฤƒ la baza noastrฤƒ de date. Funcศ›ia connect preia datele noastre URL ศ™i are facilitatea de a specifica o funcศ›ie de apel invers. Aceasta va fi apelatฤƒ atunci cรขnd conexiunea la baza de date este deschisฤƒ. Acest lucru ne oferฤƒ posibilitatea de a ศ™ti dacฤƒ conexiunea la baza de date a avut succes sau nu.
  2. รŽn funcศ›ie, scriem ศ™irul โ€žConexiune stabilitฤƒโ€ รฎn consolฤƒ pentru a indica faptul cฤƒ a fost creatฤƒ o conexiune cu succes.
  3. รŽn cele din urmฤƒ, รฎnchidem conexiunea folosind instrucศ›iunea db.close.

Dacฤƒ codul de mai sus este executat corect, ศ™irul โ€žConectatโ€ va fi scris pe consolฤƒ, aศ™a cum se aratฤƒ mai jos.

  1. Interogarea datelor รฎn a MongoDB Baza de date - Folosind MongoDB driver, putem prelua ศ™i date de la MongoDB baza de date. Secศ›iunea de mai jos va arฤƒta cum putem folosi driverul pentru a prelua toate documentele din colecศ›ia noastrฤƒ Employee din baza noastrฤƒ de date EmployeeDB. Aceasta este colecศ›ia din MongoDB baza de date, care conศ›ine toate documentele legate de angajaศ›i. Fiecare document are un ID de obiect, un nume de angajat ศ™i un ID de 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);

});
});

Code Explicaลฃie:

  1. รŽn primul pas, creฤƒm un cursor (un cursor este un pointer care este utilizat pentru a indica diferitele รฎnregistrฤƒri preluate dintr-o bazฤƒ de date. Cursorul este apoi utilizat pentru a itera prin diferitele รฎnregistrฤƒri din baza de date. Aici definim o variabilฤƒ numitฤƒ cursor, care va fi utilizatฤƒ pentru a stoca pointerul cฤƒtre รฎnregistrฤƒrile preluate din baza de date) care indicฤƒ รฎnregistrฤƒrile care sunt preluate din colecศ›ia MongoDb. De asemenea, avem posibilitatea de a specifica colecศ›ia โ€žAngajatโ€ din care sฤƒ se preiau รฎnregistrฤƒrile. Funcศ›ia find() este utilizatฤƒ pentru a specifica faptul cฤƒ dorim sฤƒ preluฤƒm toate documentele din MongoDB de colectare.
  2. Acum iterฤƒm prin cursor ศ™i pentru fiecare document din cursor vom executa o funcศ›ie.
  3. Funcศ›ia noastrฤƒ va imprima pur ศ™i simplu conศ›inutul fiecฤƒrui document pe consolฤƒ.

Notฤƒ: - De asemenea, este posibil sฤƒ se preia 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ฤƒ aศ›i dori doar sฤƒ preiaศ›i รฎnregistrarea care are numele angajatului ca Guru99, atunci aceastฤƒ afirmaศ›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 dumneavoastrฤƒ.

ieศ™ire:

Din ieศ™ire,

  • Veศ›i putea vedea clar cฤƒ toate documentele din colecศ›ie sunt preluate. Acest lucru este posibil prin utilizarea metodei find() a conexiunii mongoDB (db) ศ™i iterarea prin toate documentele folosind cursorul.
  1. Inserarea documentelor รฎntr-o colecศ›ie โ€“ Documentele pot fi inserate รฎntr-o colecศ›ie folosind metoda insertOne oferitฤƒ de MongoDB bibliotecฤƒ. 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"
});
});

Code Explicaลฃie:

  1. Aici folosim metoda insertOne din MongoDB bibliotecฤƒ pentru a insera un document รฎn colecศ›ia Employee.
  2. Specificฤƒm detaliile documentului cu privire la ceea ce trebuie introdus รฎn colecศ›ia Angajat.

Dacฤƒ verificaศ›i acum conศ›inutul dvs MongoDB baza de date, veศ›i gฤƒsi รฎnregistrarea cu Employeeid de 4 ศ™i EmployeeName de โ€žNewEmployeeโ€ introduse รฎn colecศ›ia Employee.

Notฤƒ: Consola nu va afiศ™a nicio ieศ™ire deoarece รฎnregistrarea este inseratฤƒ รฎn baza de date ศ™i nicio ieศ™ire nu poate fi afiศ™atฤƒ aici.

Pentru a verifica dacฤƒ datele au fost introduse corect รฎn baza de date, trebuie sฤƒ executaศ›i urmฤƒtoarele comenzi รฎn MongoDB

  1. Utilizaศ›i EmployeeDB
  2. db.Employee.find({Employeeid :4 })

Prima declaraศ›ie asigurฤƒ cฤƒ sunteศ›i conectat la baza de date EmployeeDb. A doua declaraศ›ie cautฤƒ รฎnregistrarea care are ID-ul de angajat 4.

  1. Actualizarea documentelor dintr-o colecศ›ie โ€“ Documentele pot fi actualizate รฎntr-o colecศ›ie folosind metoda updateOne oferitฤƒ de MongoDB bibliotecฤƒ. Fragmentul de cod de mai jos aratฤƒ cum sฤƒ actualizaศ›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').updateOne({
"EmployeeName": "NewEmployee"
}, {
$set: {
"EmployeeName": "Mohan"
}
});
});

Code Explicaลฃie:

  1. Aici folosim metoda โ€župdateOneโ€ din MongoDB bibliotecฤƒ, care este folositฤƒ pentru a actualiza un document dintr-o colecศ›ie mongoDB.
  2. Specificฤƒm criteriile de cฤƒutare pentru care document trebuie actualizat. รŽn cazul nostru, dorim sฤƒ gฤƒsim documentul care are EmployeeName de โ€žNewEmployeeโ€.
  3. Apoi vrem sฤƒ setฤƒm valoarea EmployeeName al documentului de la โ€žNewEmployeeโ€ la โ€žMohanโ€.

Dacฤƒ verificaศ›i acum conศ›inutul dvs MongoDB baza de date, veศ›i gฤƒsi รฎnregistrarea cu Employeeid de 4 ศ™i EmployeeName lui โ€žMohanโ€ actualizate รฎ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

  1. Utilizaศ›i EmployeeDB
  2. db.Employee.find({Employeeid :4 })

Prima declaraศ›ie asigurฤƒ cฤƒ sunteศ›i conectat la baza de date EmployeeDb. A doua declaraศ›ie cautฤƒ รฎnregistrarea care are ID-ul de angajat 4.

  1. ศ˜tergerea documentelor dintr-o colecศ›ie โ€“ Documentele pot fi ศ™terse dintr-o colecศ›ie folosind metoda โ€ždeleteOneโ€ oferitฤƒ de MongoDB bibliotecฤƒ. 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"
}

);
});

Code Explicaลฃie:

  1. Aici folosim metoda โ€ždeleteOneโ€ din MongoDB bibliotecฤƒ, care este folositฤƒ pentru a ศ™terge un document dintr-o colecศ›ie mongoDB.
  2. Specificฤƒm criteriile de cฤƒutare pentru care document trebuie ศ™ters. รŽn cazul nostru, dorim sฤƒ gฤƒsim documentul care are EmployeeName โ€žMohanโ€ ศ™i sฤƒ ศ™tergem acest document.

Dacฤƒ verificaศ›i acum conศ›inutul dvs MongoDB baza de date, veศ›i gฤƒsi รฎnregistrarea cu Employeeid de 4 ศ™i EmployeeName de โ€ž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

  1. Utilizaศ›i EmployeeDB
  2. db.Employee.find()

Prima declaraศ›ie 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.

Async/Aศ™teptare modernฤƒ MongoDB Conexiuni รฎn Node.js

MongoClient.connect(url, apel invers) Modelul folosit รฎn acest articol corespunde cu MongoDB Versiunea driverului Node.js care era actualฤƒ la momentul scrierii exemplelor de mai sus. Versiunile recente de drivere รฎncฤƒ acceptฤƒ acest stil de apel invers, dar majoritatea proiectelor noi preferฤƒ acum promises ศ™i async/await, deoarece codul rezultat se citeศ™te de sus รฎn jos, fฤƒrฤƒ apeluri inverse imbricate. Paศ™ii de mai jos rescriu aceeaศ™i conexiune Employee folosind sintaxa modernฤƒ.

  1. Creaศ›i o singurฤƒ instanศ›ฤƒ MongoClient รฎn afara oricฤƒrei funcศ›ii, transmiศ›รขnd ศ™irul de conexiune o singurฤƒ datฤƒ, de exemplu const client = new MongoClient(url);
  2. Apel aศ™teaptฤƒ clientul.connect() รฎn interiorul unei funcศ›ii asincrone pentru a deschide conexiunea รฎn loc sฤƒ transmitฤƒ un apel invers.
  3. Obศ›ineศ›i baza de date cu client.db('EmployeeDB') รฎn loc sฤƒ se bazeze pe obiectul returnat รฎn interiorul unui callback.
  4. Executaศ›i interogฤƒri cu astept, De exemplu, aศ™teaptฤƒ db.collection('Angajat').find().toArray(), care returneazฤƒ direct un tablou รฎn loc sฤƒ necesite o funcศ›ie de apel invers al cursorului.
  5. รŽnchideศ›i conexiunea cu aศ™teaptฤƒ clientul.close() รฎn interiorul unui bloc finally, astfel รฎncรขt sฤƒ ruleze รฎntotdeauna, chiar dacฤƒ o interogare genereazฤƒ o eroare.
const { MongoClient } = require('mongodb');

const url = 'mongodb://localhost:27017';
const client = new MongoClient(url);

async function run() {
try {
await client.connect();
const db = client.db('EmployeeDB');
const employees = await db.collection('Employee').find().toArray();
console.log(employees);
} finally {
await client.close();
}
}

run().catch(console.error);

Ambele stiluri se conecteazฤƒ la aceeaศ™i bazฤƒ de date EmployeeDB ศ™i la aceeaศ™i colecศ›ie Employee, astfel รฎncรขt codul existent bazat pe callback nu trebuie rescris imediat. Cele douฤƒ abordฤƒri pot coexista รฎn timp ce un proiect migreazฤƒ treptat, iar alegerea depinde รฎn mare mฤƒsurฤƒ de care MongoDB Versiunea driverului Node.js include deja un fiศ™ier package.json.

Cum sฤƒ construiศ›i o aplicaศ›ie Node Express cu MongoDB pentru a stoca ศ™i a difuza conศ›inut

Avรขnd รฎn vedere ambele stiluri de conexiune acoperite, urmฤƒtoarea secศ›iune aplicฤƒ modelul clasic de apel invers รฎn cadrul unei aplicaศ›ii Express complete, deoarece aceasta este sintaxa utilizatฤƒ de serverul exemplu original de mai jos. Construirea unei aplicaศ›ii cu o combinaศ›ie de Express ศ™i MongoDB este destul de comunฤƒ รฎn zilele noastre.

Cรขnd lucraศ›i cu JavaScenariu รŽn cazul aplicaศ›iilor bazate pe web, se va auzi รฎn mod normal de termenul MEAN stack.

  • Termenul MEAN stack se referฤƒ la o colecศ›ie de JavaTehnologii bazate pe scripturi 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ศ›elegeศ›i cum Node.js ศ™i MongoDB lucreazฤƒ รฎmpreunฤƒ pentru a furniza aplicaศ›ii care interacศ›ioneazฤƒ cu bazele de date backend.

Sฤƒ ne uitฤƒm la un exemplu simplu despre cum putem folosi โ€žexpressโ€ ศ™i โ€žMongoDBโ€ รฎmpreunฤƒ. Exemplul nostru va folosi aceeaศ™i colecศ›ie de angajaศ›i รฎn MongoDB Baza de date EmployeeDB.

Acum vom รฎncorpora Express pentru a afiศ™a datele pe pagina noastrฤƒ web atunci cรขnd sunt solicitate de utilizator. Cรขnd aplicaศ›ia noastrฤƒ ruleazฤƒ pe Node.js, ar putea fi necesar sฤƒ navigaศ›i la URL http://localhost:3000/Employeeid.

La lansarea paginii, vor fi afiศ™ate toate ID-urile angajatului din colecศ›ia Employee. Deci, sฤƒ vedem fragmentul de cod รฎn secศ›iuni care ne vor permite sฤƒ realizฤƒm acest lucru.

Pas 1) Definiศ›i toate bibliotecile care trebuie utilizate รฎn aplicaศ›ia noastrฤƒ, care รฎn cazul nostru este atรขt MongoDB ศ™i bibliotecฤƒ expresฤƒ.

Code Explicaลฃie:

  1. Definim biblioteca noastrฤƒ โ€žexpressโ€, care va fi folositฤƒ รฎn aplicaศ›ia noastrฤƒ.
  2. Ne definim "MongoDB', care va fi folositฤƒ รฎn aplicaศ›ia noastrฤƒ pentru conectarea la sistemul nostru MongoDB Bazฤƒ de date.
  3. Aici definim URL din baza noastrฤƒ de date la care sฤƒ se conecteze.
  4. รŽn cele din urmฤƒ, definim un ศ™ir care va fi folosit pentru a stoca colecศ›ia noastrฤƒ de id-uri de angajaศ›i care trebuie sฤƒ fie afiศ™ate รฎn browser mai tรขrziu.

Pas 2) รŽn acest pas, acum vom obศ›ine toate รฎnregistrฤƒrile din colecศ›ia noastrฤƒ โ€žAngajaศ›iโ€ ศ™i vom lucra cu ele รฎn consecinศ›ฤƒ.

Code Explicaลฃie:

  1. 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, fragmentul de cod definit pentru aceastฤƒ rutฤƒ va fi executat.
  2. Aici obศ›inem toate รฎnregistrฤƒrile din colecศ›ia noastrฤƒ โ€žAngajatโ€ prin comanda db.collection(โ€žAngajatโ€).find(). Apoi atribuim aceastฤƒ colecศ›ie unei variabile numite cursor. Folosind aceastฤƒ variabilฤƒ de cursor, vom putea naviga prin toate รฎnregistrฤƒrile colecศ›iei.
  3. 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 trebuie fฤƒcut atunci cรขnd fiecare รฎnregistrare este accesatฤƒ.
  4. รŽ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 va permite ca rezultatele noastre sฤƒ fie afiศ™ate corect รฎn browser.

Pas 3) รŽn acest pas, vom trimite rezultatele noastre cฤƒtre pagina web ศ™i vom face ca aplicaศ›ia noastrฤƒ sฤƒ asculte pe un anumit port.

Code Explicaลฃie:

  1. Aici trimitem รฎntregul conศ›inut care a fost construit รฎn pasul anterior cฤƒtre pagina noastrฤƒ web. Parametrul โ€žresโ€ ne permite sฤƒ trimitem conศ›inut cฤƒtre pagina noastrฤƒ web ca rฤƒspuns.
  2. Facem ca รฎntreaga noastrฤƒ aplicaศ›ie Node.js sฤƒ asculte pe portul 3000.

ieศ™ire:

Din ieศ™ire,

  • Aratฤƒ รฎn mod clar cฤƒ toate datele angajaศ›ilor din colecศ›ia Employee au fost recuperate. Acest lucru se datoreazฤƒ faptului cฤƒ folosim MongoDB driver pentru a se conecta la baza de date ศ™i a prelua toate รฎnregistrฤƒrile angajaศ›ilor ศ™i, ulterior, a 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 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() {});

Notฤƒ: cursor.each poate depreciat รฎn funcศ›ie de versiunea dvs MongoDB conducฤƒtor auto. Puteศ›i adฤƒuga //noinspection JSDeprecatedSymbols รฎnainte de cursor.each pentru a evita problema. Alternativ, puteศ›i utiliza forEach. 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 + "</br>";
}
}, function(err) {
res.send(err);
db.close();
}
);
});
});
var server = app.listen(8080, function() {});

รŽntrebฤƒri frecvente

รŽnlocuiศ›i ศ™irul de conexiune local cu ศ™irul Atlas SRV din dialogul Conectare cluster, de exemplu mongodb+srv://user:password@cluster.mongodb.net/EmployeeDB, apoi transmiteศ›i-l cฤƒtre MongoDB Atlas exact aศ™a cum aศ™teaptฤƒ MongoClient.

Nu includeศ›i ศ™irul รฎn codul sursฤƒ รฎncฤƒrcรขndu-l dintr-o variabilฤƒ de mediu cu un pachet precum dotenv, apoi adฤƒugaศ›i fiศ™ierul .env la .gitignore, astfel รฎncรขt acreditฤƒrile sฤƒ nu ajungฤƒ niciodatฤƒ la controlul versiunilor.

Nu. Un serviciu gratuit MongoDB Clusterul Atlas funcศ›ioneazฤƒ cu fiecare exemplu de aici; se modificฤƒ doar ศ™irul de conexiune, deci un cluster local MongoDB Instalarea serverului comunitar este opศ›ionalฤƒ, nu obligatorie.

Da, instrumente precum Copilotul GitHub poate redacta rapid apelurile find, insertOne sau updateOne, dar un dezvoltator ar trebui sฤƒ verifice รฎn continuare numele cรขmpurilor, versiunea driverului ศ™i gestionarea conexiunilor รฎnainte de a rula codul generat.

Lipirea mesajului de eroare exact ศ™i a formatului ศ™irului de conexiune รฎntr-un asistent AI scoate adesea la ivealฤƒ cauze comune, cum ar fi o aศ™teptare lipsฤƒ, un numฤƒr de port greศ™it sau o adresฤƒ IP care nu este inclusฤƒ รฎn lista albฤƒ รฎn accesul la reศ›eaua Atlas.

Rezumaศ›i aceastฤƒ postare cu: