Enamik reaalmaailma rakendusi säilitab andmeid andmebaasides. Seetõttu on oluline teada, kuidas oma rakendus andmebaasiga ühendada ja sealt andmeid tuua.

MySQL on andmebaasi jaoks suurepärane valik. Seda on lihtne kasutada, sellel on laialdane tugi ja see on üks populaarsemaid relatsiooniandmebaase.

Enne alustamist

Kuna testite ühenduse koodi kohalikus MySQL-serveris, peate seda tegema installige MySQL-server esiteks. Kui olete seda teinud, looge tühi andmebaas ja veenduge, et teil oleks kasutajanimi ja parool käepärast.

Looge sõlmerakendus

Käivitage terminalis järgmine käsk, et luua oma sõlmerakendusele uus kaust:

mkdir node-mysql

Navigeerige lehele node-mysql kausta ja lähtestage see npm abil:

cd node-mysql
npm init -y

See loob faili package.json, mis sisaldab muu konfiguratsiooni kõrval ka teie projekti sõltuvusi.

Ühendage sõlm MySQL-iga

Sõlmerakenduse MySQL-iga ühendamiseks on mitu võimalust. The mysql2 pakett on suurepärane valik, mille saate installida sellise käsuga:

npm installi mysql2

Ühenduse loomiseks vajate mitut väärtust, nimelt hosti, porti, kasutajat, andmebaasi ja parooli. Siin on näide, mis loob ühenduse andmebaasiga nimega

instagram viewer
nodedb lokaalselt installitud MySQL-serveris.

konst config = {
host: "localhost",
port: 3306,
andmebaas: "nodedb",
kasutaja: "root",
parool: "********",
}

See on konfig edastate ühendusmeetodile nagu allolevas programmis.

konst mysql = nõuda("mysql2")

konst config = {
host: "localhost",
andmebaas: "db_name",
kasutaja: "mysql_username",
parool: "mysql_password",
ühenduse piirang: 100,
}

konst ühendus = mysql.createConnection (config)

connect.connect(funktsiooni(eks) {
kui (viga) viskama(err);
konsool.log("Ühendatud!");
});

Kui edastate andmebaasi üksikasjad mysql.createConnection() meetodil, loote ühendusobjekti. Ühendusobjekt võimaldab teil sooritada selliseid tehinguid nagu tabelite loomine, kustutamine või lugemine.

Näiteks loob järgmine kood andmebaasis, millega ühenduse loote, tabeli.

connect.connect(funktsiooni(eks) {
kui (viga) viskama eksima;
konsool.log("Ühendatud!");

lase createUser = `CREATE TABLE kasutajad (kasutaja_id INT(100), kasutajanimi VARCHAR(255), email VARCHAR(255));

connect.query (createUser, funktsiooni(err, tulemused, väljad) {
kui (err) {
konsool.log (err.message);
}
});
});

Selle käivitamisel loob see päring uue tabeli nimega kasutajad andmebaasis. Päring kasutab tavalist süntaksit, millega saate kohaneda luua MySQL andmebaasi skeem mis vastab teie vajadustele.

Ülaltoodud ühendusprogramm töötab hästi, kui soovite luua ainult ühe ühenduse. Samaaegsete ühendustaotluste tegemisel on siiski kõige parem kasutada ühenduse basseini.

Ühendage sõlm ühendusbasseini abil MySQL-iga

Ühenduste avamine ja sulgemine võib muutuda kulukaks, eriti kui neid on palju. Andmebaasiühenduste ühendamine aitab neid kulusid vähendada, säilitades avatud ühenduste kogumi. Kui taotlus esitatakse, saab bassein nõudmisel pakkuda avatud ühendust.

Seda tehes säästate aega, sest te ei pea iga kord uut ühendust avama.

Kasutage sõlmes ühenduse basseini loomiseks järgmist koodi:

konst mysql = nõuda("mysql2");

konst config = {
host: "kohalik host",
andmebaas: "db_nimi",
kasutaja: "mysql_kasutajanimi",
parool: "mysql_password",
ühenduse piirang: 100,
}

konst pool = mysql.createPool (config);

pool.query("SELECT * FROM some_table", (err, data) => {
kui (viga) viskama(viga)
konsool.log (andmed);
});

Ärge unustage muuta konfiguratsiooni üksikasju, et need vastaksid teie enda keskkonnale.

Turvaline ühendus MySQL-iga

Mysql2 teek lihtsustab Node'i rakenduse ühendamist MySQL-i andmebaasiga. Võite kasutada kas ühte klienti või ühenduse basseini. Kui aga peate esitama mitu taotlust, on kõige parem kasutada ühenduse basseini, kuna see on odavam.

Andmebaasiga ühenduse loomine on alles esimene samm. Samuti peaksite tagama, et andmebaasis salvestatud andmed on turvalised. Lõppude lõpuks on MySQL ründajate jaoks populaarne sihtmärk. MySQL-i andmebaasiserveri kaitsmiseks saate teha mõned põhitoimingud. Määrake tugev kasutajaparool, piirake kaugsisselogimisi ja ärge andke tarbetuid õigusi.