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.

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
- 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.
- 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โ.
- 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, 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},
}
- 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
- 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:
- 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.
- 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.
- 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.
- รn funcศie, scriem ศirul โConexiune stabilitฤโ รฎn consolฤ pentru a indica faptul cฤ a fost creatฤ o conexiune cu succes.
- ร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.
- 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:
- ร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.
- Acum iterฤm prin cursor ศi pentru fiecare document din cursor vom executa o funcศie.
- 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.
- 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:
- Aici folosim metoda insertOne din MongoDB bibliotecฤ pentru a insera un document รฎn colecศia Employee.
- 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
- Utilizaศi EmployeeDB
- 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.
- 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:
- Aici folosim metoda โupdateOneโ din MongoDB bibliotecฤ, care este folositฤ pentru a actualiza un document dintr-o colecศie mongoDB.
- Specificฤm criteriile de cฤutare pentru care document trebuie actualizat. รn cazul nostru, dorim sฤ gฤsim documentul care are EmployeeName de โNewEmployeeโ.
- 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
- Utilizaศi EmployeeDB
- 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.
- ศ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:
- Aici folosim metoda โdeleteOneโ din MongoDB bibliotecฤ, care este folositฤ pentru a ศterge un document dintr-o colecศie mongoDB.
- 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
- Utilizaศi EmployeeDB
- 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ฤ.
- 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);
- Apel aศteaptฤ clientul.connect() รฎn interiorul unei funcศii asincrone pentru a deschide conexiunea รฎn loc sฤ transmitฤ un apel invers.
- Obศineศi baza de date cu client.db('EmployeeDB') รฎn loc sฤ se bazeze pe obiectul returnat รฎn interiorul unui callback.
- 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.
- ร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:
- Definim biblioteca noastrฤ โexpressโ, care va fi folositฤ รฎn aplicaศia noastrฤ.
- Ne definim "MongoDB', care va fi folositฤ รฎn aplicaศia noastrฤ pentru conectarea la sistemul nostru MongoDB Bazฤ de date.
- Aici definim URL din baza noastrฤ de date la care sฤ se conecteze.
- ร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:
- 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.
- 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.
- 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ฤ.
- ร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:
- 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.
- 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() {});











