De flesta verkliga applikationer kvarstår data i databaser. Så det är viktigt att veta hur du kopplar din applikation till en databas och hämtar data från den.

MySQL är ett utmärkt val för en databas. Den är lätt att använda, har brett stöd och är en av de mest populära relationsdatabaserna.

Innan du börjar

Eftersom du kommer att testa anslutningskoden på en lokal MySQL-server måste du göra det installera en MySQL-server först. När du har gjort det, skapa en tom databas och se till att du har användarnamnet och lösenordet till hands.

Skapa en nodapplikation

I din terminal, kör följande kommando för att skapa en ny mapp för din nodapplikation:

mkdir nod-mysql

Navigera till node-mysql mapp och initiera den med npm:

CD node-mysql
npm init -y

Detta kommer att generera en package.json-fil som, bland andra konfigurationer, kommer att hålla ditt projekts beroenden.

Anslut Node till MySQL

Det finns flera sätt du kan ansluta din nodapplikation till MySQL. De mysql2 paketet är ett utmärkt val, som du kan installera med ett kommando som detta:

instagram viewer
npm installera mysql2

För att göra anslutningen behöver du flera värden, nämligen värd, port, användare, databas och lösenord. Här är ett exempel som ansluter till en databas som heter nodedb på en MySQL-server installerad lokalt.

konst config = {
värd: "localhost",
hamn: 3306,
databas: "nodedb",
användare: "root",
Lösenord: "********",
}

Det här är config objekt som du skickar till anslutningsmetoden som i programmet nedan.

konst mysql = behöva("mysql2")

konst config = {
värd: "localhost",
databas: "db_name",
användare: "mysql_username",
lösenord: "mysql_password",
anslutningsgräns: 100,
}

konst anslutning = mysql.createConnection (config)

anslutning.anslut(fungera(fela) {
om (fela) kasta(fela);
trösta.log("Ansluten!");
});

När du skickar databasinformationen till mysql.createConnection() metod skapar du ett anslutningsobjekt. Anslutningsobjektet låter dig utföra transaktioner som att skapa, ta bort eller läsa tabeller.

Till exempel skapar följande kod en tabell i databasen du ansluter till.

anslutning.anslut(fungera(fela) {
om (fela) kasta fela;
trösta.log("Ansluten!");

låta createUser = `CREATE TABLE-användare (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;

connection.query (createUser, fungera(fel, resultat, fält) {
om (fel) {
trösta.log (err.meddelande);
}
});
});

När du kör den kommer denna fråga att skapa en ny tabell som heter användare i databasen. Frågan använder vanlig syntax som du kan anpassa till skapa ett MySQL-databasschema som passar dina behov.

Anslutningsprogrammet ovan fungerar bra om du bara vill göra en enda anslutning. Men när du gör samtidiga anslutningsförfrågningar är det bäst att använda en anslutningspool.

Anslut nod till MySQL med en anslutningspool

Att öppna och stänga förbindelser kan bli dyrt, särskilt när det är många. Poolning av databasanslutningar hjälper till att minska denna kostnad genom att upprätthålla en pool av öppna anslutningar. När en begäran görs kan poolen tillhandahålla en öppen anslutning på begäran.

Genom att göra detta sparar du tid eftersom du inte behöver öppna en ny anslutning varje gång.

Använd följande kod för att skapa en anslutningspool i Node:

konst mysql = behöva("mysql2");

konst config = {
värd: "lokal värd",
databas: "db_name",
användare: "mysql_användarnamn",
Lösenord: "mysql_password",
anslutningsgräns: 100,
}

konst pool = mysql.createPool (config);

pool.query("VÄLJ * FRÅN någon_tabell", (fel, data) => {
om (fela) kasta(fela)
trösta.log (data);
});

Kom ihåg att ändra konfigurationsdetaljerna så att de matchar din egen miljö.

Säker anslutning till MySQL

Mysql2-biblioteket förenklar processen att ansluta en Node-applikation till en MySQL-databas. Du kan använda antingen en enskild klient eller en anslutningspool. Men om du måste göra flera förfrågningar är det bäst att använda en anslutningspool eftersom det är billigare.

Att ansluta till databasen är bara det första steget. Du bör också se till att den information du lagrar i databasen är säker. När allt kommer omkring är MySQL ett populärt mål för angripare. Det finns några grundläggande steg du kan vidta för att säkra din MySQL-databasserver. Ange ett starkt användarlösenord, begränsa fjärrinloggningar och ge inte onödiga privilegier.