Väčšina aplikácií v reálnom svete uchováva údaje v databázach. Preto je dôležité vedieť, ako pripojiť vašu aplikáciu k databáze a získať z nej údaje.
MySQL je skvelá voľba pre databázu. Ľahko sa používa, má širokú podporu a je jednou z najpopulárnejších relačných databáz.
Predtým ako začneš
Keďže budete testovať kód pripojenia na lokálnom serveri MySQL, budete musieť nainštalovať server MySQL najprv. Keď to urobíte, vytvorte prázdnu databázu a uistite sa, že máte po ruke používateľské meno a heslo.
Vytvorte aplikáciu uzla
Vo svojom termináli spustite nasledujúci príkaz na vytvorenie nového priečinka pre vašu aplikáciu uzla:
mkdir node-mysql
Prejdite na node-mysql priečinok a inicializujte ho pomocou npm:
cd node-mysql
npm init -y
Tým sa vygeneruje súbor package.json, ktorý bude okrem iných konfigurácií obsahovať aj závislosti vášho projektu.
Pripojte Node k MySQL
Existuje niekoľko spôsobov, ako môžete pripojiť aplikáciu uzla k MySQL. The mysql2 balík je vynikajúcou voľbou, ktorú môžete nainštalovať pomocou príkazu, ako je tento:
npm nainštalujte mysql2
Na vytvorenie pripojenia potrebujete niekoľko hodnôt, konkrétne hostiteľ, port, používateľ, databáza a heslo. Tu je príklad, ktorý sa pripája k databáze tzv nodedb na lokálne nainštalovanom serveri MySQL.
konšt config = {
hostiteľ: "localhost",
port: 3306,
databáza: "nodedb",
užívateľ: "root",
heslo: "********",
}
To je config objekt prejdete na metódu pripojenia ako v programe nižšie.
konšt mysql = vyžadovať("mysql2")
konšt config = {
hostiteľ: "localhost",
databáza: "db_name",
užívateľ: "mysql_username",
heslo: "mysql_password",
limit pripojenia: 100,
}konšt pripojenie = mysql.createConnection (config)
pripojenie.pripojiť(funkciu(chybovať) {
ak (chyba) hodiť(chyba);
konzoly.log("Pripojené!");
});
Keď odošlete údaje o databáze do mysql.createConnection() spôsob, vytvoríte objekt pripojenia. Objekt pripojenia vám umožní vykonávať transakcie, ako je vytváranie, odstraňovanie alebo čítanie tabuliek.
Napríklad nasledujúci kód vytvorí tabuľku v databáze, ku ktorej sa pripájate.
pripojenie.pripojiť(funkciu(chybovať) {
ak (chyba) hodiť chybovať;
konzoly.log("Pripojené!");nech createUser = `CREATE TABLE users (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;
connection.query (createUser, funkciu(chyba, výsledky, polia) {
ak (chyba) {
konzoly.log (chyba.sprava);
}
});
});
Keď ho spustíte, tento dotaz vytvorí novú tabuľku s názvom používateľov v databáze. Dotaz používa spoločnú syntax, ktorej sa môžete prispôsobiť vytvorte databázovú schému MySQL ktorý vyhovuje vašim potrebám.
Vyššie uvedený program pripojenia funguje dobre, ak chcete vytvoriť iba jedno pripojenie. Pri súbežných žiadostiach o pripojenie je však najlepšie použiť oblasť pripojení.
Pripojte Node k MySQL pomocou oblasti pripojení
Otváranie a zatváranie spojov môže byť drahé, najmä ak je ich veľa. Združovanie databázových pripojení pomáha znižovať tieto náklady udržiavaním fondu otvorených pripojení. Po zadaní požiadavky môže fond poskytnúť otvorené pripojenie na požiadanie.
Týmto spôsobom ušetríte čas, pretože nemusíte zakaždým otvárať nové pripojenie.
Na vytvorenie oblasti pripojení v Node použite nasledujúci kód:
konšt mysql = vyžadovať("mysql2");
konšt config = {
hostiteľ: "localhost",
databáza: "názov_db",
užívateľ: "mysql_username",
heslo: "mysql_password",
limit pripojenia: 100,
}konšt pool = mysql.createPool (config);
pool.query("SELECT * FROM some_table", (chyba, údaje) => {
ak (chyba) hodiť(chyba)
konzoly.log (údaje);
});
Nezabudnite zmeniť podrobnosti konfigurácie tak, aby zodpovedali vášmu vlastnému prostrediu.
Bezpečné pripojenie k MySQL
Knižnica mysql2 zjednodušuje proces pripojenia aplikácie Node k databáze MySQL. Môžete použiť jedného klienta alebo oblasť pripojení. Ak však musíte zadať viacero požiadaviek, najlepšie je použiť oblasť pripojení, pretože je to menej nákladné.
Pripojenie k databáze je len prvým krokom. Mali by ste sa tiež uistiť, že údaje, ktoré ukladáte do databázy, sú bezpečné. Koniec koncov, MySQL je obľúbeným cieľom útočníkov. Existuje niekoľko základných krokov, ktoré môžete podniknúť na zabezpečenie svojho databázového servera MySQL. Nastavte silné používateľské heslo, obmedzte vzdialené prihlásenia a neudeľujte zbytočné privilégiá.