Relaatiotietokannat, kuten MySQL, ovat perinteisesti olleet tietokantavalinta. MongoDB: n kaltaisten NoSQL-tietokantojen suosio on kuitenkin kasvanut johtuen niiden joustavasta tallennusrakenteesta ja niiden kyvystä tallentaa ja hakea tietoja nopeasti.
Nämä tietokannat tarjoavat vaihtoehtoisen kyselykielen, jonka voit integroida saumattomasti nykyaikaisiin verkko- ja mobiilisovelluksiin. Lue lisää React-tietojen tallentamisesta MongoDB-tietokantaan.
Mikä on NoSQL-tietokanta?
NoSQL on lyhenne sanoista Not only SQL, ei-relaatiotietokanta. Tämäntyyppinen tietokanta ei nojaa perinteiseen relaatiotietokantamalliin. Siinä ei ole määriteltyä sarake-rivirakennetta, ja se voi tallentaa tietoja useissa eri muodoissa, mikä tekee siitä joustavamman ja skaalautuvamman.
Suurin ero NoSQL: n ja relaatiotietokantojen välillä on, että NoSQL-tietokannat tallentavat tietoja rivejen ja sarakkeiden sijaan asiakirjoihin, joilla on dynaaminen rakenne.
Luo MongoDB-tietokanta
MongoDB on suosituin NoSQL-tietokanta. Se on avoimen lähdekoodin tietokanta, joka tallentaa tietoja JSON-tyyppisiin asiakirjoihin (taulukoihin) kokoelmissa (tietokantoissa).
Tältä yksinkertainen MongoDB-dokumenttirakenne näyttää:
{
Etunimi: "Andrew",
Rooli: "Taustakehittäjä"
}
Aloittaaksesi sinun on ensin perustaa MongoDB-tietokanta. Kun olet määrittänyt MongoDB: n, avaa MongoDB Compass -sovellus. Napsauta sitten Uusi yhteys -painiketta luodaksesi yhteyden paikallisesti toimivaan MongoDB-palvelimeen.
Jos sinulla ei ole pääsyä MongoDB Compass GUI -työkaluun, voit käyttää MongoDB-kuorityökalu tietokannan ja kokoelman luomiseen.
Anna yhteyden URI ja yhteyden nimi ja paina sitten Tallenna ja yhdistä.
Napsauta lopuksi Luo tietokanta -painiketta, täytä tietokannan nimi ja anna kokoelman nimi esittelykokoelmalle.
Luo React-asiakas
Löydät tämän sovelluksen koodin siitä GitHub-arkisto.
Jos haluat käynnistää React-sovelluksen nopeasti, luo projektikansio paikalliselle koneellesi, vaihda kyseiseen hakemistoon ja suorita nämä päätekomennot kehityspalvelimen luomiseksi ja pyörittämiseksi:
npx create-react-app my-app
cd my-app
npm aloitus
Asenna seuraavaksi Axios. Tämän paketin avulla voit lähettää HTTP-pyyntöjä backend Express.js -palvelimellesi tietojen tallentamiseksi MongoDB-tietokantaan.
npm asennus axios
Luo esittelylomake käyttäjätietojen keräämistä varten
Avaa src/App.js tiedosto, poista tiivistelmä React-koodi ja korvaa se seuraavalla:
tuonti'./App.css';
tuonti Reagoi, { useState } alkaen'reagoi';
tuonti Axios alkaen"aksiot";toimintoSovellus() {
konst [nimi, setName] = useState("")
konst [role, setRole] = useState("")konst handleSubmit = (e) => {
e.preventDefault();Axios.post(' http://localhost: 4000/lisäosa", {
koko nimi: nimi,
yritysRooli: rooli
})
}palata (
"Sovellus">"Sovelluksen otsikko"> "sisäänkirjautumislomake">
viedäoletuksena Sovellus;
Puretaan se:
- Ilmoita kaksi tilaa, nimi ja roolitila, säilyttääksesi syöttökentistä kerätyt käyttäjätiedot useState-koukun avulla.
- The onChange Jokaisen syöttökentän menetelmä suorittaa takaisinkutsun, joka käyttää tilamenetelmiä käyttäjän lomakkeen kautta lähettämien tietojen kaappaamiseen ja tallentamiseen.
- OnSubmit-käsittelijätoiminto käyttää tietojen lähettämistä taustapalvelimelle Axios.post menetelmä lähettää tiloista objektina välitetyt tiedot tausta-API-päätepisteeseen.
Jos haluat muotoilla hahmonnetun lomakkeen, lisää seuraava koodi App.css-tiedostoon.
* {
pehmuste: 0;
marginaali: 0;
laatikon kokoinen: raja-laatikko;
}kehon {
font-perhe: 'Poppins', sans-serif;
taustaväri: #8EC1D6;
}.sisäänkirjautumislomake {
marginaali: 100pxauto;
leveys: 200px;
korkeus: 250px;
taustaväri: #F F F;
raja-säde: 10px;
}.sisäänkirjautumislomakes {
tekstin tasaus: keskusta;
Fonttikoko: 12px;
fontin paino: 600;
väri: #B8BFC6;
pehmuste: 10px 10px;
}.sisäänkirjautumislomakesyöttö {
näyttö: lohko;
leveys: 80%;
korkeus: 40px;
marginaali: 10pxauto;
rajaa: 1pxkiinteä#ccc;
raja-säde: 5px;
pehmuste: 0 10px;
Fonttikoko: 16px;
väri: musta;
}
.sisäänkirjautumislomake-painiketta {
taustaväri: #8EC1D6;
väri: #F F F;
kohdistin: osoitin;
Fonttikoko: 15px;
raja-säde:7px;
pehmuste: 5px 10px;
rajaa: ei mitään;
}
Pyöritä nyt kehityspalvelin päivittääksesi muutokset ja siirry kohtaan http://localhost: 3000 selaimessasi nähdäksesi tulokset.
Luo Express.js-taustajärjestelmä
Express-taustajärjestelmä toimii väliohjelmistona React-asiakkaasi ja MongoDB-tietokannan välillä. Palvelimelta voit määrittää tietoskeemasi ja muodostaa yhteyden asiakkaan ja tietokannan välille.
Luo Express-verkkopalvelin ja asenna nämä kaksi pakettia:
npm asenna mongoose cors
Mongoose on Object Data Modeling (ODM) -kirjasto MongoDB: lle ja Nodelle. Se tarjoaa yksinkertaistetun kaavapohjaisen menetelmän sovellustietojen mallintamiseen ja tallentamiseen MongoDB-tietokantaan.
CORS-paketti (Cross-Origin Resource Sharing) tarjoaa mekanismin taustapalvelimelle ja käyttöliittymäasiakkaalle viestimään ja välittämään tietoja API-päätepisteiden kautta.
Luo tietoskeema
Luo uusi kansio palvelimesi projektikansion juurihakemistoon ja nimeä se mallit. Luo tähän kansioon uusi tiedosto: dataSchema.js.
Kaava edustaa tässä tapauksessa tietokantasi loogista rakennetta. Se määrittelee asiakirjat (tietueet) ja kentät (ominaisuudet), jotka muodostavat tietokannan kokoelmat.
Lisää seuraava koodi dataSchema.js-tiedostoon:
konst mangusti = vaatia('mungo');
konst ReactFormDataSchema = Uusi mungo. Schema({
nimi: {
tyyppi: merkkijono,
edellytetään: totta
},
rooli: {
tyyppi: merkkijono,
edellytetään: totta
}
});
konst User = mangoose.model("Käyttäjä", ReactFormDataSchema);
moduuli.exports = Käyttäjä;
Tämä koodi luo Mongoose-skeeman käyttäjämallille. Tämä skeema määrittää käyttäjätietojen tietorakenteen, mukaan lukien käyttäjän nimen ja roolin. Kaavaa käytetään sitten mallin luomiseen käyttäjälle. Tämä sallii mallin tallentaa tietoja MongoDB-kokoelmaan Schema määritellyn rakenteen mukaisesti.
Määritä Express-palvelin
Avaa seuraavaksi index.js tiedosto palvelimen projektikansioon ja lisää tämä koodi:
konst express = vaatia('ilmaista');
konst mangusti = vaatia('mungo');
konst cors = vaatia("cors");
konst sovellus = express();
konst Käyttäjä= vaatia('./models/ReactDataSchema')app.use (express.json());
app.use (cors());mangoose.connect("mongodb://localhost: 27017/reactdata", { käytä NewUrlParseria: totta });
app.post('/insert', asynk(req, res) => {
konst Etunimi = req.body.firstName
konst CompanyRole = vaadittu.body.companyRolekonst formData = Uusi User({
nimi: etunimi,
rooli: CompanyRole
})yrittää {
odottaa formData.save();
res.send("tiedot lisätty..")
} ottaa kiinni(err) {
konsoli.log (err)
}
});konst portti = process.env. SATAMA || 4000;
app.listen (portti, () => {
konsoli.Hirsi(`Palvelin käynnistyi portissa ${port}`);
});
Puretaan se:
- Alusta Express, Mongoose ja CORS palvelimella.
- Mongoose-paketti muodostaa yhteyden MongoDB-tietokantaan käyttämällä kytkeä menetelmä, joka ottaa URI-alueen ja objektin. URI on yhteysmerkkijono, jota käytetään yhteyden muodostamiseen MongoDB-tietokantaan. Objekti määrittää konfiguraation; tässä tapauksessa se sisältää asetuksen käyttää uusinta URL-jäsennin muotoa.
- Verkkopalvelin vastaa pääasiassa eri reiteiltä tuleviin pyyntöihin sopivalla käsittelijätoiminnolla. Tässä tapauksessa palvelimella on POST-reitti, joka vastaanottaa tiedot React-asiakkaalta, tallentaa ne muuttujaan ja välittää ne tuodulle tietomallille.
- Palvelin käyttää sitten try-and-catch-lohkoa tietojen tallentamiseen ja tallentamiseen MongoDB-tietokantaan ja kirjaa ulos mahdolliset virheet.
Pyöritä lopuksi kehityspalvelin päivittääksesi muutokset ja siirry React-asiakasohjelmaan selaimessasi. Kirjoita kaikki tiedot lomakkeeseen ja tarkastele tuloksia MongoDB-tietokannassa.
MERN-pinon käyttäminen sovellusten rakentamiseen
MERN-pino tarjoaa tehokkaan ja tehokkaan työkalusarjan rakennussovelluksiin. Voit luoda täysimittaisia reaalimaailman sovelluksia käyttämällä MongoDB-, Express-, React- ja Node.js-tiedostoja,
React-ekosysteemi tarjoaa myös paketteja, jotka auttavat sinua työskentelemään verkkolomakkeiden kanssa. Jotkut suosituimmista ovat Formik, KendoReact Form ja React Hook Form.