De fleste applikationer fra den virkelige verden bevarer data i databaser. Så det er vigtigt at vide, hvordan du forbinder din applikation til en database og henter data fra den.

MySQL er et glimrende valg til en database. Den er nem at bruge, har udbredt støtte og er en af ​​de mest populære relationsdatabaser.

Før du begynder

Da du skal teste forbindelseskoden på en lokal MySQL-server, bliver du nødt til det installere en MySQL-server først. Når du har gjort det, skal du oprette en tom database og sørge for, at du har brugernavnet og adgangskoden ved hånden.

Opret en nodeapplikation

I din terminal skal du køre følgende kommando for at oprette en ny mappe til dit nodeprogram:

mkdir node-mysql

Naviger til node-mysql mappe og initialiser den ved hjælp af npm:

cd node-mysql
npm init -y

Dette vil generere en package.json-fil, som blandt andre konfigurationer vil holde dit projekts afhængigheder.

Forbind Node til MySQL

Der er flere måder, du kan forbinde din nodeapplikation til MySQL. Det mysql2 pakken er et glimrende valg, som du kan installere med en kommando som denne:

instagram viewer
npm installer mysql2

For at oprette forbindelse skal du bruge flere værdier, nemlig værten, porten, brugeren, databasen og adgangskoden. Her er et eksempel, der forbinder til en database kaldet nodedb på en MySQL-server installeret lokalt.

konst config = {
vært: "lokal vært",
Havn: 3306,
database: "nodedb",
bruger: "root",
adgangskode: "********",
}

Dette er config objekt, du vil videregive til forbindelsesmetoden som i programmet nedenfor.

konst mysql = kræve("mysql2")

konst config = {
vært: "lokal vært",
database: "db_navn",
bruger: "mysql_brugernavn",
adgangskode: "mysql_password",
forbindelsesgrænse: 100,
}

konst forbindelse = mysql.createConnection (config)

forbindelse.tilslut(fungere(fejl) {
hvis (fejl) kaste(fejl);
konsol.log("Forbundet!");
});

Når du videregiver databaseoplysningerne til mysql.createConnection() metode, opretter du et forbindelsesobjekt. Forbindelsesobjektet giver dig mulighed for at udføre transaktioner som at oprette, slette eller læse tabeller.

For eksempel opretter følgende kode en tabel i den database, du opretter forbindelse til.

forbindelse.tilslut(fungere(fejl) {
hvis (fejl) kaste fejle;
konsol.log("Forbundet!");

lade opretteBruger = `CREATE TABLE-brugere (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;

forbindelse.forespørgsel (createUser, fungere(fejl, resultater, felter) {
hvis (fejl) {
konsol.log (fejl.meddelelse);
}
});
});

Når du kører det, vil denne forespørgsel oprette en ny tabel kaldet brugere i databasen. Forespørgslen bruger almindelig syntaks, som du kan tilpasse til oprette et MySQL-databaseskema der passer til dine behov.

Tilslutningsprogrammet ovenfor fungerer fint, hvis du kun ønsker at lave en enkelt forbindelse. Men når du foretager samtidige forbindelsesanmodninger, er det bedst at bruge en forbindelsespulje.

Forbind node til MySQL ved hjælp af en forbindelsespool

At åbne og lukke forbindelser kan blive dyrt, især når der er mange. Databaseforbindelsespooling hjælper med at reducere disse omkostninger ved at opretholde en pulje af åbne forbindelser. Når en forespørgsel fremsættes, kan poolen levere en åben forbindelse på efterspørgsel.

Ved at gøre dette sparer du tid, fordi du ikke skal åbne en ny forbindelse hver gang.

Brug følgende kode til at oprette en forbindelsespulje i Node:

konst mysql = kræve("mysql2");

konst config = {
vært: "lokal vært",
database: "db_navn",
bruger: "mysql_brugernavn",
adgangskode: "mysql_adgangskode",
forbindelsesgrænse: 100,
}

konst pool = mysql.createPool (config);

pool.query("VÆLG * FRA some_table", (fejl, data) => {
hvis (fejl) kaste(fejl)
konsol.log (data);
});

Husk at ændre konfigurationsdetaljerne, så de passer til dit eget miljø.

Sikker forbindelse til MySQL

Mysql2-biblioteket forenkler processen med at forbinde en Node-applikation til en MySQL-database. Du kan bruge enten en enkelt klient eller en forbindelsespulje. Men hvis du skal lave flere anmodninger, er det bedst at bruge en forbindelsespulje, da det er billigere.

Tilslutning til databasen er kun det første skridt. Du bør også sikre dig, at de data, du gemmer i databasen, er sikre. MySQL er trods alt et populært mål for angribere. Der er nogle grundlæggende trin, du kan tage for at sikre din MySQL-databaseserver. Indstil en stærk brugeradgangskode, begræns fjernlogin, og giv ikke unødvendige privilegier.