De fleste virkelige applikasjoner vedvarer data i databaser. Så det er viktig å vite hvordan du kobler applikasjonen til en database og henter data fra den.

MySQL er et utmerket valg for en database. Den er enkel å bruke, har bred støtte og er en av de mest populære relasjonsdatabasene.

Før du begynner

Siden du skal teste ut tilkoblingskoden på en lokal MySQL-server, må du installer en MySQL-server først. Når du har gjort det, lag en tom database og sørg for at du har brukernavnet og passordet for hånden.

Opprett en nodeapplikasjon

I terminalen din, kjør følgende kommando for å opprette en ny mappe for nodeapplikasjonen din:

mkdir node-mysql

Naviger til node-mysql mappe og initialiser den med npm:

cd node-mysql
npm init -y

Dette vil generere en package.json-fil som, blant annet konfigurasjon, vil inneholde avhengighetene til prosjektet ditt.

Koble Node til MySQL

Det er flere måter du kan koble nodeapplikasjonen din til MySQL. De mysql2 pakken er et utmerket valg, som du kan installere med en kommando som denne:

npm installer mysql2

For å opprette forbindelsen trenger du flere verdier, nemlig verten, porten, brukeren, databasen og passordet. Her er et eksempel som kobles til en database kalt nodedb på en MySQL-server installert lokalt.

konst config = {
vert: "localhost",
havn: 3306,
database: "nodedb",
bruker: "root",
passord: "********",
}

Dette er konfig objektet du sender til tilkoblingsmetoden som i programmet nedenfor.

konst mysql = krever("mysql2")

konst config = {
vert: "localhost",
database: "db_name",
bruker: "mysql_brukernavn",
passord: "mysql_password",
tilkoblingsgrense: 100,
}

konst forbindelse = mysql.createConnection (config)

forbindelse.koble(funksjon(feil) {
hvis (feil) kaste(feil);
konsoll.log("Tilkoblet!");
});

Når du sender databasedetaljene til mysql.createConnection() metoden, oppretter du et tilkoblingsobjekt. Tilkoblingsobjektet lar deg utføre transaksjoner som å opprette, slette eller lese tabeller.

For eksempel oppretter følgende kode en tabell i databasen du kobler til.

forbindelse.koble(funksjon(feil) {
hvis (feil) kaste feile;
konsoll.log("Tilkoblet!");

la createUser = `CREATE TABLE-brukere (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;

connection.query (createUser, funksjon(feil, resultater, felt) {
hvis (feil) {
konsoll.log (feil.melding);
}
});
});

Når du kjører den, vil denne spørringen opprette en ny tabell kalt brukere i databasen. Spørringen bruker vanlig syntaks som du kan tilpasse deg lage et MySQL-databaseskjema som passer dine behov.

Tilkoblingsprogrammet ovenfor fungerer fint hvis du kun ønsker å lage en enkelt tilkobling. Men når du foretar samtidige tilkoblingsforespørsler, er det best å bruke en tilkoblingspool.

Koble node til MySQL ved hjelp av en tilkoblingspool

Å åpne og lukke forbindelser kan bli dyrt, spesielt når det er mange. Databasetilkoblingspooling bidrar til å redusere denne kostnaden ved å opprettholde en pool av åpne tilkoblinger. Ved forespørsel kan bassenget tilby en åpen tilkobling på forespørsel.

Ved å gjøre dette sparer du tid fordi du ikke trenger å åpne en ny forbindelse hver gang.

Bruk følgende kode for å opprette en tilkoblingspool i Node:

konst mysql = krever("mysql2");

konst config = {
vert: "lokal vert",
database: "db_navn",
bruker: "mysql_brukernavn",
passord: "mysql_password",
tilkoblingsgrense: 100,
}

konst pool = mysql.createPool (config);

pool.query("VELG * FRA en_tabell", (feil, data) => {
hvis (feil) kaste(feil)
konsoll.log (data);
});

Husk å endre konfigurasjonsdetaljene for å matche ditt eget miljø.

Sikker tilkobling til MySQL

Mysql2-biblioteket forenkler prosessen med å koble en Node-applikasjon til en MySQL-database. Du kan bruke enten en enkelt klient eller en tilkoblingspool. Men hvis du må gjøre flere forespørsler, er det best å bruke en tilkoblingspool siden det er billigere.

Å koble til databasen er bare det første trinnet. Du bør også sørge for at dataene du lagrer i databasen er sikre. Tross alt er MySQL et populært mål for angripere. Det er noen grunnleggende trinn du kan ta for å sikre MySQL-databaseserveren. Angi et sterkt brukerpassord, begrens ekstern pålogging og ikke gi unødvendige privilegier.