Většina aplikací v reálném světě uchovává data v databázích. Je tedy důležité vědět, jak připojit aplikaci k databázi a načítat z ní data.

MySQL je skvělá volba pro databázi. Snadno se používá, má širokou podporu a je jednou z nejoblíbenějších relačních databází.

Než začnete

Vzhledem k tomu, že budete testovat kód připojení na místním serveru MySQL, budete muset nainstalovat server MySQL První. Jakmile to uděláte, vytvořte prázdnou databázi a ujistěte se, že máte po ruce uživatelské jméno a heslo.

Vytvořte aplikaci Node

Ve svém terminálu spusťte následující příkaz a vytvořte novou složku pro aplikaci uzlu:

mkdir node-mysql

Přejděte na node-mysql složku a inicializujte ji pomocí npm:

CD node-mysql
npm init -y

Tím se vygeneruje soubor package.json, který bude kromě jiné konfigurace obsahovat i závislosti vašeho projektu.

Připojte Node k MySQL

Existuje několik způsobů, jak můžete připojit vaši aplikaci uzlu k MySQL. The mysql2 balíček je vynikající volbou, kterou můžete nainstalovat pomocí příkazu, jako je tento:

npm nainstalovat mysql2

K vytvoření připojení potřebujete několik hodnot, jmenovitě hostitel, port, uživatel, databáze a heslo. Zde je příklad, který se připojuje k databázi s názvem nodedb na lokálně nainstalovaném serveru MySQL.

konst config = {
hostitel: "localhost",
přístav: 3306,
databáze: "nodedb",
uživatel: "root",
Heslo: "********",
}

To je config objekt, který předáte metodě připojení jako v programu níže.

konst mysql = vyžadovat("mysql2")

konst config = {
hostitel: "localhost",
databáze: "db_name",
uživatel: "mysql_username",
heslo: "mysql_password",
limit připojení: 100,
}

konst připojení = mysql.createConnection (config)

připojení.připojit(funkce(chybovat) {
-li (chybovat) házet(chybovat);
řídicí panel.log("Připojeno!");
});

Když předáte podrobnosti o databázi do mysql.createConnection() způsob, vytvoříte objekt připojení. Objekt připojení vám umožní provádět transakce, jako je vytváření, mazání nebo čtení tabulek.

Například následující kód vytvoří tabulku v databázi, ke které se připojujete.

připojení.připojit(funkce(chybovat) {
-li (chybovat) házet chybovat;
řídicí panel.log("Připojeno!");

nechat createUser = `CREATE TABLE users (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;

connection.query (createUser, funkce(err, výsledky, pole) {
-li (chyba) {
řídicí panel.log (chyba.zprava);
}
});
});

Když jej spustíte, tento dotaz vytvoří novou tabulku s názvem uživatelů v databázi. Dotaz používá běžnou syntaxi, které se můžete přizpůsobit vytvořit schéma databáze MySQL který vyhovuje vašim potřebám.

Výše uvedený program připojení funguje dobře, pokud chcete vytvořit pouze jedno připojení. Při vytváření souběžných požadavků na připojení je však nejlepší použít fond připojení.

Připojte uzel k MySQL pomocí fondu připojení

Otevírání a zavírání spojů se může prodražit, zvláště když je jich mnoho. Sdružování databázových připojení pomáhá snížit tyto náklady tím, že udržuje fond otevřených připojení. Když je podán požadavek, fond může poskytnout otevřené připojení na vyžádání.

Tím ušetříte čas, protože nemusíte pokaždé otevírat nové připojení.

K vytvoření fondu připojení v Node použijte následující kód:

konst mysql = vyžadovat("mysql2");

konst config = {
hostitel: "localhost",
databáze: "název_db",
uživatel: "mysql_username",
Heslo: "mysql_password",
limit připojení: 100,
}

konst pool = mysql.createPool (config);

pool.query("SELECT * FROM some_table", (chyba, data) => {
-li (chybovat) házet(chybovat)
řídicí panel.log (data);
});

Nezapomeňte změnit podrobnosti konfigurace tak, aby odpovídaly vašemu vlastnímu prostředí.

Bezpečné připojení k MySQL

Knihovna mysql2 zjednodušuje proces připojení aplikace Node k databázi MySQL. Můžete použít jednoho klienta nebo fond připojení. Pokud však musíte zadat více požadavků, je nejlepší použít fond připojení, protože je méně nákladný.

Připojení k databázi je pouze prvním krokem. Měli byste se také ujistit, že data, která ukládáte do databáze, jsou bezpečná. Ostatně MySQL je oblíbeným cílem útočníků. Existuje několik základních kroků, které můžete podniknout k zabezpečení databázového serveru MySQL. Nastavte silné uživatelské heslo, omezte vzdálené přihlášení a neudělujte zbytečná oprávnění.