De meeste toepassingen in de echte wereld bewaren gegevens in databases. Het is dus belangrijk om te weten hoe u uw toepassing kunt verbinden met een database en er gegevens uit kunt halen.

MySQL is een uitstekende keuze voor een database. Het is gemakkelijk te gebruiken, heeft brede ondersteuning en is een van de meest populaire relationele databases.

Voordat je begint

Aangezien u de verbindingscode op een lokale MySQL-server gaat testen, moet u: installeer een MySQL-server eerst. Zodra je dit hebt gedaan, maak je een lege database aan en zorg je ervoor dat je de gebruikersnaam en het wachtwoord bij de hand hebt.

Een knooppunttoepassing maken

Voer in uw terminal de volgende opdracht uit om een ​​nieuwe map voor uw knooppunttoepassing te maken:

mkdir node-mysql

Navigeer naar de node-mysql map en initialiseer deze met npm:

CD node-mysql
npm init -y

Dit genereert een package.json-bestand dat, naast andere configuraties, de afhankelijkheden van uw project bevat.

Verbind Node met MySQL

Er zijn verschillende manieren waarop u uw node-toepassing kunt verbinden met MySQL. De

mysql2 pakket is een uitstekende keuze, die u kunt installeren met een commando als dit:

npm installeer mysql2

Om de verbinding tot stand te brengen, hebt u verschillende waarden nodig, namelijk de host, poort, gebruiker, database en wachtwoord. Hier is een voorbeeld dat verbinding maakt met een database met de naam nodedb op een lokaal geïnstalleerde MySQL-server.

const configuratie = {
host: "lokale host",
haven: 3306,
databank: "nodedb",
gebruiker: "root",
wachtwoord: "********",
}

Dit is de configuratie object geef je door aan de verbindingsmethode zoals in het onderstaande programma.

const mysql = vereisen("mysql2")

const configuratie = {
host: "lokale host",
database: "db_name",
gebruiker: "mysql_gebruikersnaam",
wachtwoord: "mysql_password",
verbindingslimiet: 100,
}

const verbinding = mysql.createConnection (config)

verbinding.verbinden(functie(foutje) {
als (fout) gooien(fout);
troosten.log("Verbonden!");
});

Wanneer u de databasegegevens doorgeeft aan de mysql.createConnection() methode, maakt u een verbindingsobject. Met het verbindingsobject kunt u transacties uitvoeren, zoals het maken, verwijderen of lezen van tabellen.

De volgende code maakt bijvoorbeeld een tabel in de database waarmee u verbinding maakt.

verbinding.verbinden(functie(foutje) {
als (fout) gooien fout;
troosten.log("Verbonden!");

laten createUser = `CREATE TABLE gebruikers (user_id INT(100), gebruikersnaam VARCHAR(255), e-mail VARCHAR(255))';

verbinding.query (createUser, functie(fout, resultaten, velden) {
als (fout) {
troosten.log (err.bericht);
}
});
});

Wanneer u het uitvoert, zal deze query een nieuwe tabel maken met de naam gebruikers in de databank. De query gebruikt een algemene syntaxis waaraan u zich kunt aanpassen een MySQL-databaseschema maken dat past bij uw behoeften.

Bovenstaand verbindingsprogramma werkt prima als je maar één keer verbinding wilt maken. Bij gelijktijdige verbindingsverzoeken kunt u echter het beste een verbindingspool gebruiken.

Verbind Node met MySQL met behulp van een verbindingspool

Het openen en sluiten van verbindingen kan duur worden, vooral als het er veel zijn. Pooling van databaseverbindingen helpt deze kosten te verlagen door een pool van open verbindingen te onderhouden. Bij een aanvraag kan het zwembad op aanvraag een open verbinding verzorgen.

Hierdoor bespaar je tijd omdat je niet elke keer een nieuwe verbinding hoeft te openen.

Gebruik de volgende code om een ​​verbindingspool in Node te maken:

const mysql = vereisen("mysql2");

const configuratie = {
gastheer: "localhost",
databank: "db_name",
gebruiker: "mysql_gebruikersnaam",
wachtwoord: "mysql_password",
verbindingslimiet: 100,
}

const pool = mysql.createPool (config);

pool.query("SELECT * FROM some_table", (fout, gegevens) => {
als (fout) gooien(fout)
troosten.log (gegevens);
});

Vergeet niet om de configuratiedetails aan te passen aan uw eigen omgeving.

Veilig verbinding maken met MySQL

De mysql2-bibliotheek vereenvoudigt het proces van het verbinden van een Node-toepassing met een MySQL-database. U kunt een enkele client of een verbindingspool gebruiken. Als u echter meerdere verzoeken moet indienen, kunt u het beste een verbindingspool gebruiken, omdat dit minder kostbaar is.

Verbinding maken met de database is slechts de eerste stap. U moet er ook voor zorgen dat de gegevens die u opslaat in de database veilig zijn. MySQL is immers een populair doelwit voor aanvallers. Er zijn enkele basisstappen die u kunt nemen om uw MySQL-databaseserver te beveiligen. Stel een sterk gebruikerswachtwoord in, beperk inloggen op afstand en verleen geen onnodige privileges.