Vadnica Node.js MongoDB s primeri

Kazalo:

Anonim

Večinoma imajo vse sodobne spletne aplikacije na zaledju nekakšen sistem za shranjevanje podatkov. Če na primer vzamete primer za spletno nakupovanje, se podatki, kot je cena izdelka, shranijo v bazo podatkov.

Okvir Node js lahko deluje z bazami podatkov tako z relacijskimi (kot sta Oracle in MS SQL Server) kot z nerelacijskimi bazami podatkov (kot je MongoDB). V tej vadnici bomo videli, kako lahko uporabljamo zbirke podatkov znotraj aplikacij Node js.

V tej vadnici boste izvedeli-

  • Baze podatkov Node.js in NoSQL
  • Uporaba MongoDB in Node.js
  • Kako z MongoDB zgraditi ekspresno aplikacijo vozlišča za shranjevanje in prikazovanje vsebin

Baze podatkov Node.js in NoSQL

Z leti so baze podatkov NoSQL, kot sta MongoDB in MySQL, postale zelo priljubljene kot zbirke podatkov za shranjevanje podatkov. Sposobnost teh baz podatkov shraniti kakršno koli vsebino, zlasti v kateri koli obliki, je tisto, zaradi česar so te baze podatkov tako znane.

Node.js lahko deluje kot MySQL in MongoDB kot zbirki podatkov. Če želite uporabiti katero koli od teh baz podatkov, morate z upravljalnikom paketov Node prenesti in uporabiti zahtevane module.

Za MySQL se zahtevani modul imenuje "mysql", za uporabo MongoDB pa je potrebni modul "Mongoose".

S temi moduli lahko v Node.js izvedete naslednje operacije

  1. Upravljanje združevanja povezav - Tu lahko določite število povezav do zbirke podatkov MySQL, ki jih mora Node.js vzdrževati in shraniti.
  2. Ustvarite in zaprite povezavo do baze podatkov. V obeh primerih lahko zagotovite funkcijo povratnega klica, ki jo lahko pokličete vsakič, ko se izvedeta način povezave "create" in "close".
  3. Poizvedbe se lahko izvajajo za pridobivanje podatkov iz ustreznih baz podatkov za pridobivanje podatkov.
  4. S temi moduli je mogoče doseči tudi manipulacijo s podatki, na primer vstavljanje podatkov, brisanje in posodabljanje podatkov.

Za preostale teme bomo preučili, kako lahko delamo z bazami podatkov MongoDB znotraj Node.js.

Uporaba MongoDB in Node.js

Kot smo že omenili v prejšnji temi, je MongoDB ena izmed najbolj priljubljenih zbirk podatkov, ki se uporablja skupaj z Node.js.

V tem poglavju bomo videli

Kako lahko vzpostavimo povezave z bazo podatkov MongoDB

Kako lahko izvajamo običajne postopke branja podatkov iz baze podatkov ter vstavljanja, brisanja in posodabljanja zapisov v zbirki podatkov MongoDB.

Za namen tega poglavja predpostavimo, da imamo spodaj navedene podatke MongoDB.

Ime zbirke podatkov: EmployeeDB

Ime zbirke: Zaposleni

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. Namestitev modulov NPM

Za dostop do Mongoja iz aplikacije Node potrebujete gonilnik. Na voljo so številni gonilniki za Mongo, vendar je MongoDB med najbolj priljubljenimi. Če želite namestiti modul MongoDB, zaženite spodnji ukaz

npm namestite mongodb

  1. Ustvarjanje in zapiranje povezave do zbirke podatkov MongoDB. Spodnji delček kode prikazuje, kako ustvariti in zapreti povezavo do zbirke podatkov MongoDB.

Razlaga kode:

  1. Prvi korak je vključitev modula mongoose, ki se izvede s pomočjo funkcije require. Ko je ta modul nameščen, lahko uporabimo potrebne funkcije, ki so na voljo v tem modulu, za ustvarjanje povezav z bazo podatkov.
  2. Nato določimo naš niz povezave z bazo podatkov. V nizu za povezavo so posredovane 3 vrednosti ključev.
  • Prva je "mongodb", ki določa, da se povezujemo z bazo podatkov mongoDB.
  • Naslednji je 'localhost', kar pomeni, da se povezujemo z bazo podatkov na lokalnem računalniku.
  • Naslednje je 'EmployeeDB', kar je ime baze podatkov, definirane v naši zbirki podatkov MongoDB.
  1. Naslednji korak je dejanska povezava z našo bazo podatkov. Funkcija povezovanja prevzame naš URL in ima možnost določitve funkcije povratnega klica. Pokliče se, ko se povezava odpre v bazo podatkov. To nam daje priložnost vedeti, ali je bila povezava z bazo podatkov uspešna ali ne.
  2. V funkciji na konzolo zapišemo niz »Povezava je vzpostavljena«, ki označuje, da je bila vzpostavljena uspešna povezava.
  3. Na koncu zapremo povezavo z uporabo stavka db.close.

Če je zgornja koda pravilno izvedena, se v konzolo zapiše niz "Povezan", kot je prikazano spodaj.

  1. Poizvedovanje po podatkih v zbirki podatkov MongoDB - Z gonilnikom MongoDB lahko pridobimo tudi podatke iz baze podatkov MongoDB.

    Spodnji razdelek prikazuje, kako lahko z gonilnikom pridobimo vse dokumente iz zbirke Employee v naši zbirki podatkov EmployeeDB. To je zbirka v naši zbirki podatkov MongoDB, ki vsebuje vse dokumente, povezane z zaposlenimi. Vsak dokument ima ID predmeta, ime zaposlenega in ID zaposlenega za določanje vrednosti dokumenta.

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

Razlaga kode:

  1. V prvem koraku ustvarimo kazalko (Kazalec je kazalec, ki se uporablja za usmerjanje na različne zapise, pridobljene iz baze podatkov. Kurzor se nato uporablja za iteracijo med različnimi zapisi v bazi podatkov. Tu definiramo ime spremenljivke, imenovano kurzor, ki bo uporabljeno za shranjevanje kazalca na zapise, pridobljene iz baze podatkov.), ki kaže na zapise, pridobljene iz zbirke MongoDb. Prav tako lahko določimo zbirko „Zaposleni“, iz katere naj poberemo zapise. Funkcija find () se uporablja za določitev, da želimo pridobiti vse dokumente iz zbirke MongoDB.

  2. Zdaj se premikamo skozi kazalec in za vsak dokument v kazalcu bomo izvedli funkcijo.

  3. Naša funkcija bo preprosto natisnila vsebino vsakega dokumenta na konzolo.

Opomba: - Določen zapis je mogoče pridobiti tudi iz baze podatkov. To lahko storite tako, da v funkciji find () določite pogoj iskanja. Recimo, če ste želeli le po zapis, v katerem je ime zaposlenega kot Guru99, potem lahko to izjavo zapišete takole

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

Če je zgornja koda uspešno izvedena, se bo v konzoli prikazal naslednji izhod.

Izhod:

Iz rezultata,

  • Jasno boste lahko videli, da so vsi dokumenti iz zbirke pridobljeni. To je mogoče z uporabo metode find () povezave mongoDB (db) in iteracijo po vseh dokumentih s pomočjo kazalke.
  1. Vstavljanje dokumentov v zbirko - Dokumente lahko v zbirko vstavite z metodo insertOne, ki jo ponuja knjižnica MongoDB. Spodnji delček kode prikazuje, kako lahko dokument vstavimo v zbirko 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"});});

Razlaga kode:

  1. Tu uporabljamo metodo insertOne iz knjižnice MongoDB za vstavljanje dokumenta v zbirko Employee.
  2. Določamo podrobnosti dokumenta, kaj je treba vstaviti v zbirko zaposlenih.

Če zdaj preverite vsebino zbirke podatkov MongoDB, boste našli zapis z Employeeid of 4 in EmployeeName za "NewE Employee", vstavljen v zbirko Employee.

Opomba: Konzola ne bo prikazala nobenega izhoda, ker je zapis vstavljen v bazo podatkov in tukaj ni mogoče prikazati nobenega izhoda.

Če želite preveriti, ali so bili podatki pravilno vstavljeni v bazo podatkov, morate v MongoDB izvesti naslednje ukaze

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

Prvi stavek zagotavlja, da ste povezani z bazo podatkov EmployeeDb. Drugi stavek išče zapis, v katerem je ID zaposlenega 4.

  1. Posodabljanje dokumentov v zbirki - Dokumente je mogoče posodobiti v zbirki z uporabo metode updateOne, ki jo ponuja knjižnica MongoDB. Spodnji delček kode prikazuje, kako posodobiti dokument v zbirki 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"}});});

Razlaga kode:

  1. Tu uporabljamo metodo "updateOne" iz knjižnice MongoDB, ki se uporablja za posodobitev dokumenta v zbirki mongoDB.
  2. Določamo merila iskanja, kateri dokument je treba posodobiti. V našem primeru želimo najti dokument z imenom EmployeeName "NewE Employee."
  3. Nato želimo nastaviti vrednost EmployeeName dokumenta iz "NewEclueee" v "Mohan".

Če zdaj preverite vsebino zbirke podatkov MongoDB, boste našli zapis z Employeeid of 4 in EmployeeName of "Mohan" posodobljen v zbirki Employee.

Če želite preveriti, ali so bili podatki pravilno posodobljeni v zbirki podatkov, morate v MongoDB izvesti naslednje ukaze

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

Prvi stavek zagotavlja, da ste povezani z bazo podatkov EmployeeDb. Drugi stavek išče zapis, v katerem je ID zaposlenega 4.

  1. Brisanje dokumentov v zbirki - Dokumente lahko v zbirki izbrišete z uporabo metode "deleteOne", ki jo ponuja knjižnica MongoDB. Spodnji delček kode prikazuje, kako izbrisati dokument v zbirki mongoDB.

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

Razlaga kode:

  1. Tu uporabljamo metodo "deleteOne" iz knjižnice MongoDB, ki se uporablja za brisanje dokumenta iz zbirke mongoDB.
  2. Določamo merila iskanja, kateri dokument je treba izbrisati. V našem primeru želimo poiskati dokument z imenom EmployeeName "Mohan" in ga izbrisati.

Če zdaj preverite vsebino zbirke podatkov MongoDB, boste našli zapis z Employeeid of 4 in EmployeeName of "Mohan", izbrisan iz zbirke Employee.

Če želite preveriti, ali so bili podatki pravilno posodobljeni v zbirki podatkov, morate v MongoDB izvesti naslednje ukaze

  1. Uporabite EmployeeDB
  2. db.E Employee.find ()

Prvi stavek zagotavlja, da ste povezani z bazo podatkov EmployeeDb. Drugi stavek išče in prikaže vse zapise v zbirki zaposlenih. Tu lahko vidite, ali je bil zapis izbrisan ali ne.

Kako z MongoDB zgraditi ekspresno aplikacijo vozlišča za shranjevanje in prikazovanje vsebin

Danes je gradnja aplikacije s kombinacijo tako Expressa kot MongoDB precej pogosta.

Pri delu s spletnimi aplikacijami JavaScript se tukaj običajno uporablja izraz MEAN stack.

  • Izraz MEAN stack se nanaša na zbirko tehnologij, ki temeljijo na JavaScript in se uporabljajo za razvoj spletnih aplikacij.
  • MEAN je kratica za MongoDB, ExpressJS, AngularJS in Node.js.

Zato je vedno dobro razumeti, kako Node.js in MongoDB sodelujeta pri zagotavljanju aplikacij, ki sodelujejo z baznimi bazami podatkov.

Oglejmo si preprost primer, kako lahko skupaj uporabimo "express" in "MongoDB". V našem primeru bomo uporabili isto zbirko zaposlenih v zbirki podatkov MongoDB EmployeeDB.

Zdaj bomo vključili Express za prikaz podatkov na naši spletni strani, ko to zahteva uporabnik. Ko se naša aplikacija izvaja na Node.js, boste morda morali poiskati URL http: // localhost: 3000 / Employeeid .

Ko se stran zažene, bodo prikazani vsi ID-ji zaposlenih v zbirki Employee. Poglejmo si torej delček kode v odsekih, ki nam bodo to omogočili.

Korak 1) Določite vse knjižnice, ki jih je treba uporabiti v naši aplikaciji, ki je v našem primeru tako MongoDB kot ekspresna knjižnica.

Razlaga kode:

  1. Določamo našo 'ekspresno' knjižnico, ki bo uporabljena v naši aplikaciji.
  2. Določamo našo 'ekspresno' knjižnico, ki bo uporabljena v naši aplikaciji za povezavo z našo bazo podatkov MongoDB.
  3. Tu definiramo URL naše baze podatkov, na katero se želimo povezati.
  4. Na koncu določimo še niz, ki bo uporabljen za shranjevanje naše zbirke ID-ja zaposlenega, ki ga je treba pozneje prikazati v brskalniku.

Korak 2) V tem koraku bomo zdaj dobili vse zapise v zbirki "Zaposleni" in z njimi ustrezno delali.

Razlaga kode:

  1. Ustvarjamo pot do naše aplikacije, imenovane »Employeeid«. Torej, kadar koli bo kdo brskal po http: // localhost: 3000 / Employeeid naše aplikacije, se bo izvedel delček kode, definiran za to pot.
  2. Tukaj dobimo vse zapise v naši zbirki 'Zaposleni' z ukazom db.collection ('Zaposleni'). Find (). Nato to zbirko dodelimo spremenljivki, imenovani kurzor. S to spremenljivko kazalke bomo lahko brskali po vseh zapisih zbirke.
  3. Zdaj uporabljamo funkcijo cursor.each () za krmarjenje po vseh zapisih naše zbirke. Za vsak zapis bomo določili delček kode, kaj storiti, ko je dostop do vsakega zapisa.
  4. Nazadnje vidimo, da če vrnjeni zapis ni nič, potem vodimo zaposlenega prek ukaza "item.E Employeeid". Preostala koda je samo za izdelavo ustrezne kode HTML, ki bo omogočila, da bodo naši rezultati pravilno prikazani v brskalniku.

Korak 3) V tem koraku bomo poslali svoj izhod na spletno stran in omogočili, da naša aplikacija posluša na določenih vratih.

Razlaga kode:

  1. Tukaj na našo spletno stran pošiljamo celotno vsebino, ki je bila sestavljena v prejšnjem koraku. Parameter 'res' nam omogoča, da kot odgovor pošljemo vsebino na našo spletno stran.
  2. Celotno aplikacijo Node.js poslušamo na vratih 3000.

Izhod:

Iz rezultata,

  • Jasno kaže, da so bili vsi zaposleni v zbirki Employee pridobljeni. To je zato, ker uporabljamo gonilnik MongoDB za povezavo z bazo podatkov in pridobivanje vseh evidenc zaposlenih, nato pa za prikaz zapisov uporabimo "express".

Tu je koda za vašo referenco

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

Opomba: cursor.each je morda zastarel glede na različico vašega gonilnika MongoDB. Pred kurzor.each lahko dodate // noinspection JSDeprecatedSymbols, da izognete težavo. Lahko pa uporabite forEach. Spodaj je vzorčna koda, ki uporablja 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() {});

Povzetek

  • Node.js se uporablja skupaj z bazami podatkov NoSQL za izdelavo številnih sodobnih spletnih aplikacij. Nekatere najpogostejše uporabljene baze podatkov so MySQL in MongoDB.
  • Eden najpogostejših modulov, ki se uporabljajo za delo z bazami podatkov MongoDB, je modul, imenovan "MongoDB". Ta modul je nameščen prek upravitelja paketov Node.
  • Z modulom MongoDB lahko poiščete zapise v zbirki in izvedete običajne operacije posodabljanja, brisanja in vstavljanja.
  • Nazadnje je ena od sodobnih praks uporaba ekspresnega okvira skupaj z MongoDB za zagotavljanje sodobnih aplikacij. Okvir Express lahko uporablja podatke, ki jih vrne gonilnik MongoDB, in uporabniku ustrezno prikaže podatke na spletni strani.