Većina aplikacija iz stvarnog svijeta zadržava podatke u bazama podataka. Stoga je važno znati kako povezati svoju aplikaciju s bazom podataka i dohvatiti podatke iz nje.
MySQL je izvrstan izbor za bazu podataka. Jednostavan je za korištenje, ima široku podršku i jedna je od najpopularnijih relacijskih baza podataka.
Prije nego što počneš
Budući da ćete testirati kod veze na lokalnom MySQL poslužitelju, morat ćete instalirati MySQL poslužitelj prvi. Nakon što to učinite, stvorite praznu bazu podataka i provjerite imate li pri ruci korisničko ime i lozinku.
Izradite aplikaciju čvora
U svom terminalu pokrenite sljedeću naredbu da biste stvorili novu mapu za svoju aplikaciju čvora:
mkdir čvor-mysql
Idite na čvor-mysql mapu i inicijalizirajte je pomoću npm-a:
CD čvor-mysql
npm init -y
To će generirati datoteku package.json koja će, između ostalih konfiguracija, sadržavati ovisnosti vašeg projekta.
Povežite čvor s MySQL
Postoji nekoliko načina na koje možete povezati svoju aplikaciju čvora na MySQL. The mysql2 paket je izvrstan izbor, koji možete instalirati naredbom poput ove:
npm instalirajte mysql2
Za uspostavljanje veze potrebno vam je nekoliko vrijednosti, odnosno host, port, korisnik, baza podataka i lozinka. Evo primjera koji se povezuje s bazom podataka tzv nodedb na MySQL poslužitelju instaliranom lokalno.
konst konfiguracija = {
host: "localhost",
luka: 3306,
baza podataka: "nodedb",
korisnik: "root",
zaporka: "********",
}
Ovo je konfig objekt koji ćete proslijediti metodi povezivanja kao u donjem programu.
konst mysql = zahtijevati("mysql2")
konst konfiguracija = {
host: "localhost",
baza podataka: "db_name",
korisnik: "mysql_username",
lozinka: "mysql_password",
ograničenje veze: 100,
}konst veza = mysql.createConnection (config)
povezivanje.connect(funkcija(pogriješiti) {
ako (err) bacanje(err);
konzola.log("Povezano!");
});
Kada proslijedite detalje baze podataka u mysql.createConnection() metodom, stvarate objekt veze. Objekt povezivanja omogućit će vam izvođenje transakcija poput stvaranja, brisanja ili čitanja tablica.
Na primjer, sljedeći kod stvara tablicu u bazi podataka na koju se povezujete.
povezivanje.connect(funkcija(pogriješiti) {
ako (err) bacanje pogriješiti;
konzola.log("Povezano!");neka createUser = `KREIRAJTE TABLE korisnika (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;
connection.query (createUser, funkcija(err, rezultati, polja) {
ako (err) {
konzola.log (pogreška.poruka);
}
});
});
Kada ga pokrenete, ovaj će upit stvoriti novu tablicu pod nazivom korisnika u bazi podataka. Upit koristi uobičajenu sintaksu kojoj se možete prilagoditi stvoriti shemu MySQL baze podataka koji odgovara vašim potrebama.
Gornji program za povezivanje radi dobro ako želite uspostaviti samo jednu vezu. Međutim, kada postavljate zahtjeve za istodobne veze, najbolje je koristiti skup veza.
Povežite čvor s MySQL koristeći skup veza
Otvaranje i zatvaranje priključaka može postati skupo, pogotovo kada ih ima mnogo. Skupina veza baze podataka pomaže smanjiti ovaj trošak održavanjem skupa otvorenih veza. Kada se postavi zahtjev, bazen može pružiti otvorenu vezu na zahtjev.
Time štedite vrijeme jer ne morate svaki put otvarati novu vezu.
Upotrijebite sljedeći kod za stvaranje spremišta veza u čvoru:
konst mysql = zahtijevati("mysql2");
konst konfiguracija = {
domaćin: "lokalni domaćin",
baza podataka: "db_name",
korisnik: "mysql_username",
zaporka: "mysql_password",
ograničenje veze: 100,
}konst bazen = mysql.createPool (config);
pool.query("ODABIR * IZ neke_tablice", (err, podaci) => {
ako (err) bacanje(err)
konzola.log (podaci);
});
Ne zaboravite promijeniti pojedinosti konfiguracije tako da odgovaraju vašem okruženju.
Sigurno povezivanje na MySQL
Knjižnica mysql2 pojednostavljuje proces povezivanja aplikacije Node na MySQL bazu podataka. Možete koristiti ili jednog klijenta ili skup veza. Međutim, ako morate napraviti više zahtjeva, najbolje je koristiti skup veza jer je jeftiniji.
Povezivanje s bazom podataka samo je prvi korak. Također biste trebali osigurati da su podaci koje pohranjujete u bazi podataka sigurni. Uostalom, MySQL je popularna meta napadača. Postoje neki osnovni koraci koje možete poduzeti da osigurate svoj MySQL poslužitelj baze podataka. Postavite jaku korisničku lozinku, ograničite udaljene prijave i nemojte davati nepotrebne privilegije.