La plupart des applications du monde réel conservent les données dans les bases de données. Il est donc important de savoir comment connecter votre application à une base de données et en extraire des données.

MySQL est un excellent choix pour une base de données. Il est facile à utiliser, bénéficie d'un large support et est l'une des bases de données relationnelles les plus populaires.

Avant que tu commences

Étant donné que vous allez tester le code de connexion sur un serveur MySQL local, vous devrez installer un serveur MySQL première. Une fois que vous avez fait cela, créez une base de données vide et assurez-vous d'avoir le nom d'utilisateur et le mot de passe à portée de main.

Créer une application de nœud

Dans votre terminal, exécutez la commande suivante pour créer un nouveau dossier pour votre application de nœud :

mkdir noeud-mysql

Naviguez vers le noeud-mysql dossier et initialisez-le à l'aide de npm :

CD noeud-mysql
npm init -y

Cela générera un fichier package.json qui, entre autres configurations, contiendra les dépendances de votre projet.

instagram viewer

Connecter le nœud à MySQL

Il existe plusieurs façons de connecter votre application de nœud à MySQL. La mysql2 package est un excellent choix, que vous pouvez installer avec une commande comme celle-ci :

npm installer mysql2

Pour établir la connexion, vous avez besoin de plusieurs valeurs, à savoir l'hôte, le port, l'utilisateur, la base de données et le mot de passe. Voici un exemple qui se connecte à une base de données appelée nœuddb sur un serveur MySQL installé localement.

constante configuration = {
hôte: "localhost",
Port: 3306,
base de données: "nodedb",
utilisateur: "racine",
le mot de passe: "********",
}

C'est le configuration objet que vous passerez à la méthode de connexion comme dans le programme ci-dessous.

constante mysql = exiger("mysql2")

constante configuration = {
hôte: "localhost",
base de données: "nom_bd",
utilisateur: "mysql_username",
mot de passe: "mysql_password",
connectionLimit: 100,
}

constante connexion = mysql.createConnection (config)

connexion.connect(fonction(se tromper) {
si (se tromper) jeter(se tromper);
console.log("Connecté !");
});

Lorsque vous transmettez les détails de la base de données au mysql.createConnection() méthode, vous créez un objet de connexion. L'objet de connexion vous permettra d'effectuer des transactions telles que la création, la suppression ou la lecture de tables.

Par exemple, le code suivant crée une table dans la base de données à laquelle vous vous connectez.

connexion.connect(fonction(se tromper) {
si (se tromper) jeter se tromper;
console.log("Connecté !");

laisser créerutilisateur = `CREATE TABLE users (user_id INT(100), user_name VARCHAR(255), email VARCHAR(255))`;

connexion.query (createUser, fonction(erreur, résultats, champs) {
si (erre) {
console.log (err.message);
}
});
});

Lorsque vous l'exécuterez, cette requête créera une nouvelle table appelée utilisateurs dans la base de données. La requête utilise une syntaxe commune que vous pouvez adapter à créer un schéma de base de données MySQL qui convient à vos besoins.

Le programme de connexion ci-dessus fonctionne correctement si vous ne souhaitez établir qu'une seule connexion. Cependant, lorsque vous effectuez des demandes de connexion simultanées, il est préférable d'utiliser un pool de connexions.

Connecter un nœud à MySQL à l'aide d'un pool de connexions

L'ouverture et la fermeture des connexions peuvent devenir coûteuses, surtout lorsqu'elles sont nombreuses. La mise en pool des connexions à la base de données permet de réduire ce coût en maintenant un pool de connexions ouvertes. Lorsqu'une demande est faite, le pool peut fournir une connexion ouverte sur demande.

En procédant ainsi, vous gagnez du temps car vous n'avez pas à ouvrir une nouvelle connexion à chaque fois.

Utilisez le code suivant pour créer un pool de connexions dans Node :

constante mysql = exiger("mysql2");

constante configuration = {
héberger: "hôte local",
base de données: "nom_bd",
utilisateur: "mysql_username",
le mot de passe: "mysql_password",
connectionLimit: 100,
}

constante pool = mysql.createPool (config);

piscine.query("SELECT * FROM une_table", (erreur, données) => {
si (se tromper) jeter(se tromper)
console.log (données);
});

N'oubliez pas de modifier les détails de configuration pour qu'ils correspondent à votre propre environnement.

Connexion sécurisée à MySQL

La bibliothèque mysql2 simplifie le processus de connexion d'une application Node à une base de données MySQL. Vous pouvez utiliser soit un seul client, soit un pool de connexions. Cependant, si vous devez effectuer plusieurs requêtes, il est préférable d'utiliser un pool de connexion car il est moins coûteux.

La connexion à la base de données n'est que la première étape. Vous devez également vous assurer que les données que vous stockez dans la base de données sont sécurisées. Après tout, MySQL est une cible populaire pour les attaquants. Vous pouvez suivre certaines étapes de base pour sécuriser votre serveur de base de données MySQL. Définissez un mot de passe utilisateur fort, limitez les connexions à distance et n'accordez pas de privilèges inutiles.