Node.js MongoDB -opetusohjelma esimerkkeineen

Enimmäkseen kaikilla nykypäivän verkkosovelluksilla on jonkinlainen datan tallennusjärjestelmä. Jos esimerkiksi otat verkkokauppasovelluksen, tietokanta, kuten kohteen hinta, tallennettaisiin tietokantaan.

Node js -kehys voi toimia sekä relaatiotietokantojen (kuten Oracle ja MS SQL Server) että ei-relaatiotietokantojen (kuten MongoDB) kanssa. Tässä opetusohjelmassa näemme, kuinka voimme käyttää tietokantoja Node js -sovellusten sisällä.

Tässä opetusohjelmassa opit-

  • Node.js- ja NoSQL-tietokannat
  • MongoDB: n ja Node.js: n käyttäminen
  • Kuinka rakentaa solmun pikasovellus MongoDB: n avulla sisällön tallentamiseksi ja tarjoamiseksi

Node.js- ja NoSQL-tietokannat

Vuosien varrella NoSQL-tietokannoista, kuten MongoDB ja MySQL, on tullut varsin suosittuja tietokannoina tietojen tallentamiseksi. Näiden tietokantojen kyky tallentaa kaiken tyyppistä sisältöä ja erityisesti minkä tahansa tyyppiseen muotoon tekee näistä tietokannoista niin kuuluisan.

Node.js pystyy toimimaan sekä MySQL: n että MongoDB: n kanssa tietokannoina. Jos haluat käyttää kumpaakin näistä tietokannoista, sinun on ladattava ja käytettävä vaadittuja moduuleja Node-paketinhallinnalla.

MySQL: ssä vaaditun moduulin nimi on "mysql" ja MongoDB: n käyttämiseksi vaadittava asennettava moduuli on "Mongoose".

Näillä moduuleilla voit suorittaa seuraavat toiminnot Node.js: ssä

  1. Hallitse yhteysallennusta - Tässä voit määrittää, kuinka monta MySQL-tietokantayhteyttä Node.js: n tulisi ylläpitää ja tallentaa.
  2. Luo ja sulje yhteys tietokantaan. Kummassakin tapauksessa voit tarjota soittopyynnön, joka voidaan kutsua aina, kun "luo" ja "sulje" yhteysmenetelmät suoritetaan.
  3. Kyselyt voidaan suorittaa tietojen saamiseksi vastaavista tietokannoista tietojen noutamiseksi.
  4. Näillä moduuleilla voidaan saavuttaa myös tietojen käsittely, kuten tietojen lisääminen, poistaminen ja päivittäminen.

Muiden aiheiden osalta tarkastelemme, kuinka voimme työskennellä Node.js: n MongoDB-tietokantojen kanssa.

MongoDB: n ja Node.js: n käyttäminen

Kuten edellisessä aiheessa keskusteltiin, MongoDB on yksi suosituimmista tietokannoista, joita käytetään yhdessä Node.js: n kanssa.

Tämän luvun aikana näemme

Kuinka voimme luoda yhteyksiä MongoDB-tietokantaan

Kuinka voimme suorittaa normaalit toiminnot tietojen lukemiseksi tietokannasta sekä tietueiden lisäämisestä, poistamisesta ja päivittämisestä MongoDB-tietokantaan.

Oletetaan tässä luvussa, että meillä on alla olevat MongoDB-tiedot paikoillaan.

Tietokannan nimi: EmployeeDB

Kokoelman nimi: työntekijä

Documents{{Employeeid : 1, Employee Name : Guru99},{Employeeid : 2, Employee Name : Joe},{Employeeid : 3, Employee Name : Martin},}
  1. NPM-moduulien asentaminen

Tarvitset ohjaimen päästäksesi Mongoon Node-sovelluksesta. Saatavilla on useita Mongo-ohjaimia, mutta MongoDB on suosituimpia. Asenna MongoDB-moduuli suorittamalla seuraava komento

npm asenna mongodb

  1. Yhteyden luominen ja sulkeminen MongoDB-tietokantaan. Alla oleva koodinpätkä näyttää, miten yhteys luodaan ja suljetaan MongoDB-tietokantaan.

Koodin selitys:

  1. Ensimmäinen vaihe on sisällyttää mongoose-moduuli, joka tehdään vaadittavan toiminnon kautta. Kun tämä moduuli on paikallaan, voimme käyttää tässä moduulissa tarvittavia toimintoja yhteyden luomiseen tietokantaan.
  2. Seuraavaksi määritämme yhteysmerkkijonomme tietokantaan. Connect-merkkijonossa on 3 avainarvoa, jotka välitetään.
  • Ensimmäinen on 'mongodb', joka määrittää, että muodostamme yhteyden mongoDB-tietokantaan.
  • Seuraava on 'localhost', mikä tarkoittaa, että muodostamme yhteyden paikallisen koneen tietokantaan.
  • Seuraava on 'EmployeeDB', joka on MongoDB-tietokannassamme määritetyn tietokannan nimi.
  1. Seuraava vaihe on todella muodostaa yhteys tietokantaan. Connect-toiminto vie URL-osoitteemme ja sillä on mahdollisuus määrittää takaisinsoittotoiminto. Sitä kutsutaan, kun yhteys avataan tietokantaan. Tämä antaa meille mahdollisuuden tietää, onnistuiko tietokantayhteys vai ei.
  2. Funktiossa kirjoitamme merkkijonon "Yhteys muodostettu" konsoliin osoittamaan, että yhteys on luotu.
  3. Lopuksi suljemme yhteyden db.close-käskyllä.

Jos yllä oleva koodi suoritetaan oikein, merkkijono "Yhdistetty" kirjoitetaan konsoliin alla olevan kuvan mukaisesti.

  1. Tietojen kysely MongoDB-tietokannasta - MongoDB-ohjainta käyttämällä voimme myös hakea tietoja MongoDB-tietokannasta.

    Seuraavassa osiossa näytetään, kuinka voimme kuljettajan avulla hakea kaikki asiakirjat EmployeeDB-tietokannastamme olevasta Employee-kokoelmastamme . Tämä on kokoelma MongoDB-tietokannassamme, joka sisältää kaikki työntekijöihin liittyvät asiakirjat. Jokaisella asiakirjalla on objektin tunnus, työntekijän nimi ja työntekijän tunnus, jotka määrittelevät asiakirjan arvot.

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

Koodin selitys:

  1. Ensimmäisessä vaiheessa luodaan kohdistin (kohdistin on osoitin, jota käytetään osoittamaan tietokannasta haetut tietueet. Kohdistinta käytetään sitten iteroimaan tietokannan eri tietueet. Tässä määritetään muuttujan nimi, jota kutsutaan kohdistimeksi, jota käytetään osoittimen tallentamiseen tietokannasta haettuihin tietueisiin.), joka osoittaa MongoDb-kokoelmasta haettuihin tietueisiin. Meillä on myös mahdollisuus määrittää kokoelma 'Työntekijä', josta tietueet noudetaan. Find () -toimintoa käytetään määrittämään, että haluamme hakea kaikki asiakirjat MongoDB-kokoelmasta.

  2. Toistamme nyt kohdistimen kautta ja suoritamme jokaisen kohdistimen asiakirjan toiminnon.

  3. Toimintomme on yksinkertaisesti tulostaa jokaisen asiakirjan sisältö konsolille.

Huomaa: - Tietyn tietueen on myös mahdollista hakea tietokannasta. Tämä voidaan tehdä määrittämällä hakuehto Find () -toiminnossa. Oletetaan esimerkiksi, että haluat vain hakea tietueen, jonka työntekijän nimi on Guru99, tämä lause voidaan kirjoittaa seuraavasti

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

Jos yllä oleva koodi suoritetaan onnistuneesti, seuraava lähtö näkyy konsolissasi.

Tuotos:

Lähdöstä

  • Voit nähdä selvästi, että kaikki kokoelman asiakirjat haetaan. Tämä on mahdollista käyttämällä mongoDB-yhteyden (db) find () -menetelmää ja iteroimalla kaikki asiakirjat kursorin avulla.
  1. Asiakirjojen lisääminen kokoelmaan - Asiakirjat voidaan lisätä kokoelmaan käyttämällä MongoDB-kirjaston tarjoamaa insertOne-menetelmää. Alla oleva koodinpätkä osoittaa, kuinka voimme lisätä asiakirjan mongoDB-kokoelmaan.

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

Koodin selitys:

  1. Tässä käytämme insertong-menetelmää MongoDB-kirjastosta asiakirjan lisäämiseksi työntekijöiden kokoelmaan.
  2. Määritämme asiakirjan yksityiskohdat siitä, mikä on lisättävä työntekijän kokoelmaan.

Jos tarkistat nyt MongoDB-tietokannan sisällön, löydät tietueen, jonka Employeeid on 4 ja EmployeeName "NewEmployee" lisätään Employee-kokoelmaan.

Huomautus: Konsoli ei näytä mitään lähtöä, koska tietue lisätään tietokantaan, eikä mitään lähdettä voida näyttää tässä.

Varmistaaksesi, että tiedot on lisätty oikein tietokantaan, sinun on suoritettava seuraavat komennot MongoDB: ssä

  1. Käytä EmployeeDB: tä
  2. db.Employee.find ({Työntekijän tunnus: 4})

Ensimmäinen lauseke varmistaa, että olet yhteydessä EmployeeDb-tietokantaan. Toinen lause etsii tietuetta, jonka työntekijätunnus on 4.

  1. Kokoelman asiakirjojen päivittäminen - Asiakirjat voidaan päivittää kokoelmassa MongoDB-kirjaston tarjoamalla updateOne-menetelmällä. Alla oleva koodinpätkä näyttää, kuinka asiakirja päivitetään mongoDB-kokoelmassa.

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

Koodin selitys:

  1. Tässä käytämme MongoDB-kirjaston "updateOne" -menetelmää, jota käytetään päivittämään mongoDB-kokoelman asiakirja.
  2. Määritämme hakukriteerit, mikä asiakirja on päivitettävä. Meidän tapauksessamme haluamme löytää asiakirjan, jonka EmployeeName on "NewEmployee".
  3. Sitten haluamme asettaa asiakirjan EmployeeName-arvon arvoksi "NewEmployee" arvoon "Mohan".

Jos tarkistat nyt MongoDB-tietokannan sisällön, löydät tietueen, jonka Employeeid of 4 ja EmployeeName of "Mohan" päivitetään Employee-kokoelmassa.

Jos haluat tarkistaa, että tiedot on päivitetty oikein tietokannassa, sinun on suoritettava seuraavat komennot MongoDB: ssä

  1. Käytä EmployeeDB: tä
  2. db.Employee.find ({Työntekijän tunnus: 4})

Ensimmäinen lauseke varmistaa, että olet yhteydessä EmployeeDb-tietokantaan. Toinen lause etsii tietuetta, jonka työntekijätunnus on 4.

  1. Asiakirjojen poistaminen kokoelmasta - Asiakirjat voidaan poistaa kokoelmasta MongoDB-kirjaston tarjoamalla "deleteOne" -menetelmällä. Alla oleva koodinpätkä näyttää, kuinka asiakirja poistetaan mongoDB-kokoelmasta.

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

Koodin selitys:

  1. Tässä käytämme "deleteOne" -menetelmää MongoDB-kirjastosta, jota käytetään poistamaan dokumentti mongoDB-kokoelmasta.
  2. Määritämme hakukriteerit, mikä asiakirja on poistettava. Meidän tapauksessamme haluamme löytää asiakirjan, jolla on työntekijän nimi "Mohan", ja poistaa tämän asiakirjan.

Jos tarkistat nyt MongoDB-tietokantasi sisällön, löydät tietueen, jonka Employeeid on 4 ja "Mohan" EmployeeName on poistettu työntekijöiden kokoelmasta.

Jos haluat tarkistaa, että tiedot on päivitetty oikein tietokannassa, sinun on suoritettava seuraavat komennot MongoDB: ssä

  1. Käytä EmployeeDB: tä
  2. db.Employee.find ()

Ensimmäinen lauseke varmistaa, että olet yhteydessä EmployeeDb-tietokantaan. Toinen lause etsii ja näyttää kaikki työntekijäkokoelman tietueet. Täältä näet, onko tietue poistettu vai ei.

Kuinka rakentaa solmun pikasovellus MongoDB: n avulla sisällön tallentamiseksi ja tarjoamiseksi

Sovelluksen rakentaminen sekä express- että MongoDB-sovellusten yhdistelmällä on nykyään melko yleistä.

Työskennellessäsi JavaScriptiä käyttävien web-sovellusten kanssa, tässä käytetään yleensä termiä MEAN-pino.

  • Termi MEAN-pino viittaa kokoelmaan Java-pohjaisia ​​tekniikoita, joita käytetään verkkosovellusten kehittämiseen.
  • MEAN on lyhenne sanoista MongoDB, ExpressJS, AngularJS ja Node.js.

Siksi on aina hyvä ymmärtää, kuinka Node.js ja MongoDB toimivat yhdessä toimittamaan sovelluksia, jotka ovat vuorovaikutuksessa taustajärjestelmien tietokantojen kanssa.

Katsotaanpa yksinkertaista esimerkkiä siitä, miten voimme käyttää "express" ja "MongoDB" yhdessä. Esimerkissämme käytetään samaa työntekijäkokoelmaa MongoDB EmployeeDB -tietokannassa.

Integroimme nyt Expressin näyttämään tiedot verkkosivullamme, kun käyttäjä sitä pyytää. Kun sovelluksemme toimii Node.js-tiedostossa, joudut ehkä selaamaan URL-osoitteeseen http: // localhost: 3000 / Employeeid .

Kun sivu käynnistetään, kaikki työntekijät-kokoelman työntekijätunnus näytetään. Katsotaan siis koodinpätkä osioissa, joiden avulla voimme saavuttaa tämän.

Vaihe 1) Määritä kaikki kirjastot, joita on käytettävä sovelluksessamme, joka on tapauksessamme sekä MongoDB- että express-kirjasto.

Koodin selitys:

  1. Määritämme pikakirjastomme, jota käytetään sovelluksessamme.
  2. Määritämme pikakirjastomme, jota käytetään sovelluksessamme yhteyden muodostamiseen MongoDB-tietokantaan.
  3. Tässä määritämme tietokantamme URL-osoitteen, johon yhteyden muodostamme.
  4. Lopuksi määritämme merkkijonon, jota käytetään tallentamaan työntekijätunnistekokoelmamme, joka on näytettävä selaimessa myöhemmin.

Vaihe 2) Tässä vaiheessa aiomme nyt hankkia kaikki Employee-kokoelmamme tietueet ja työskennellä niiden kanssa vastaavasti.

Koodin selitys:

  1. Luomme reitin sovelluksemme nimeltä Employeeid. Joten aina kun joku selaa sovelluksemme http: // localhost: 3000 / Employeeid , tälle reitille määritetty koodinpätkä suoritetaan.
  2. Täältä saamme kaikki Employee-kokoelmamme tietueet db.collection ('Employee'). Find () -komennon kautta. Määritämme sitten tämän kokoelman muuttujalle nimeltä kursori. Tämän kohdistinmuuttujan avulla voimme selata kaikkia kokoelman tietueita.
  3. Käytämme nyt cursor.each () -toimintoa selataksemme kokoelmamme kaikkia tietueita. Jokaiselle tietueelle aiomme määrittää koodinpätkän siitä, mitä tehdä, kun kutakin tietuetta käytetään.
  4. Lopuksi näemme, että jos palautettu tietue ei ole nolla, otamme työntekijän komentoon "item.Employeeid". Loput koodista on vain rakentaa oikea HTML-koodi, jonka avulla tulokset voidaan näyttää oikein selaimessa.

Vaihe 3) Tässä vaiheessa aiomme lähettää tuotoksemme verkkosivulle ja saada sovelluksemme kuuntelemaan tietyssä portissa.

Koodin selitys:

  1. Tässä lähetämme koko edellisessä vaiheessa muodostetun sisällön verkkosivustollemme. Res-parametrin avulla voimme lähettää sisältöä verkkosivullemme vastauksena.
  2. Saamme koko Node.js-sovelluksemme kuuntelemaan portissa 3000.

Tuotos:

Lähdöstä

  • Se osoittaa selvästi, että kaikki Employee-kokoelman työntekijät on haettu. Tämä johtuu siitä, että käytämme MongoDB-ohjainta yhteyden muodostamiseen tietokantaan ja haemme kaikki työntekijätietueet ja käytimme myöhemmin "express" -tietueita tietueiden näyttämiseen.

Tässä on viitteesi koodi

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

Huomaa: cursor.each voi olla vanhentunut MongoDB-ohjaimesi version perusteella. Voit liittää // noinspection JSDeprecatedSymbols ennen cursor.each kiertää asiaa. Vaihtoehtoisesti voit käyttää forEach. Alla on esimerkkikoodi, joka käyttää forEachia

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

Yhteenveto

  • Node.js: ää käytetään NoSQL-tietokantojen kanssa rakentamaan paljon nykypäivän verkkosovelluksia. Jotkut yleisimmistä käytetyistä tietokannoista ovat MySQL ja MongoDB.
  • Yksi yleisimmistä moduuleista, joita käytetään MongoDB-tietokantojen kanssa työskentelemiseen, on moduuli nimeltä MongoDB. Tämä moduuli asennetaan Node-paketinhallinnan kautta.
  • MongoDB-moduulin avulla on mahdollista kysyä kokoelman tietueita ja suorittaa normaalit päivitys-, poisto- ja lisäystoiminnot.
  • Lopuksi, yksi nykyaikaisista käytännöistä on käyttää pikakehystä yhdessä MongoDB: n kanssa nykypäivän sovellusten toimittamiseksi. Express-kehys voi hyödyntää MongoDB-ohjaimen palauttamia tietoja ja näyttää tiedot käyttäjälle verkkosivulla vastaavasti.

Mielenkiintoisia artikkeleita...