Node.js - MySQL Insert Into
Bonjour là-bas, futurs superstars du codage ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde de Node.js et MySQL. Plus précisément, nous nous concentrerons sur la manière d'insérer des données dans une base de données MySQL en utilisant Node.js. Ne vous inquiétez pas si vous êtes nouveau dans le monde de la programmation - je serai votre guide amical, expliquant tout étape par étape. Alors, mettons-nous en route !
Qu'est-ce que Node.js et MySQL ?
Avant de commencer, comprens rapidement ce qu'est Node.js et MySQL :
- Node.js : C'est un puissant environnement d'exécution JavaScript qui vous permet d'exécuter JavaScript sur votre ordinateur, pas seulement dans un navigateur web.
- MySQL : C'est un système de base de données populaire qui aide à stocker et à gérer les données.
Pensez à Node.js comme un chef et MySQL comme un grand réfrigérateur organisé. Nous utiliserons Node.js pour concocter du code qui met des données dans notre réfrigérateur MySQL !
Configuration de notre environnement
Premierement, nous devons configurer notre cuisine (je veux dire, notre environnement de développement). Voici ce que vous devez faire :
- Installez Node.js depuis le site officiel (nodejs.org)
- Installez MySQL depuis mysql.com
- Installez le module MySQL pour Node.js en exécutant cette commande dans votre terminal :
npm install mysql
Super ! Maintenant, nous avons tous nos ingrédients prêts. Mettons-nous à coder !
Insertion avec Node.js
Établir une connexion
Avant de pouvoir insérer des données, nous devons nous connecter à notre base de données MySQL. Voici comment nous faisons :
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});
connection.connect((err) => {
if (err) {
console.error('Erreur de connexion à la base de données : ' + err.stack);
return;
}
console.log('Connecté à la base de données.');
});
Reprenons cela :
- Nous requiring le module MySQL que nous avons installé plus tôt.
- Nous créons une connexion en utilisant
mysql.createConnection()
, en fournissant les détails de notre base de données. - Nous utilisons
connection.connect()
pour vraiment nous connecter à la base de données. - Si il y a une erreur, nous l'affichons. Sinon, nous confirmons que nous sommes connectés.
Requête INSERT simple
Maintenant que nous sommes connectés, mettons des données ! Imaginons que nous avons une table appelée users
avec les colonnes id
, name
, et email
. Voici comment nous pouvons insérer un nouvel utilisateur :
const newUser = { name: 'John Doe', email: '[email protected]' };
connection.query('INSERT INTO users SET ?', newUser, (error, results) => {
if (error) throw error;
console.log('Nouvel utilisateur ajouté avec ID : ' + results.insertId);
});
Que se passe-t-il ici ?
- Nous créons un objet
newUser
avec les données que nous voulons insérer. - Nous utilisons
connection.query()
pour envoyer une requête SQL à la base de données. - Le
?
dans la requête est un placeholder. MySQL le remplace par notre objetnewUser
. - Si cela réussit, MySQL renvoie certains résultats, y compris l'ID du nouveau enregistrement.
Insertion de plusieurs enregistrements
Que faire si nous voulons ajouter plusieurs utilisateurs à la fois ? Nous pouvons aussi le faire !
const users = [
{ name: 'Alice', email: '[email protected]' },
{ name: 'Bob', email: '[email protected]' },
{ name: 'Charlie', email: '[email protected]' }
];
connection.query('INSERT INTO users (name, email) VALUES ?', [users.map(user => [user.name, user.email])], (error, results) => {
if (error) throw error;
console.log('Nombre d\'enregistrements insérés : ' + results.affectedRows);
});
Voici ce qui est nouveau :
- Nous créons un tableau d'objets utilisateur.
- Nous utilisons
users.map()
pour transformer notre tableau en le format que MySQL attend. - Le placeholder
?
maintenant représente plusieurs ensembles de valeurs. -
results.affectedRows
nous indique combien d'enregistrements ont été insérés.
INSERT avec instruction préparée
Maintenant, levons notre jeu avec les instructions préparées. Ce sont comme des recettes que nous pouvons utiliser encore et encore, en changeant simplement les ingrédients (données) à chaque fois.
const sql = "INSERT INTO users (name, email) VALUES (?, ?)";
const values = ['David', '[email protected]'];
connection.query(sql, values, (error, results) => {
if (error) throw error;
console.log('Nouvel utilisateur ajouté avec ID : ' + results.insertId);
});
Qu'est-ce qui est spécial ici ?
- Nous séparerons notre requête SQL et nos données.
- Les placeholders
?
dans la requête représentent où iront nos données. - Nous passons le tableau
values
comme un argument séparé àquery()
.
Cette méthode est plus sécurisée et peut protéger contre les attaques d'injection SQL. C'est comme utiliser une recette éprouvée plutôt que de jeter ensemble des ingrédients !
Réutilisation des instructions préparées
La véritable puissance des instructions préparées apparaît lorsque nous les réutilisons :
const sql = "INSERT INTO users (name, email) VALUES (?, ?)";
const users = [
['Eva', '[email protected]'],
['Frank', '[email protected]'],
['Grace', '[email protected]']
];
users.forEach(user => {
connection.query(sql, user, (error, results) => {
if (error) throw error;
console.log('Nouvel utilisateur ajouté avec ID : ' + results.insertId);
});
});
Ici, nous utilisons la même requête "recette" pour chaque utilisateur, en changeant simplement les "ingrédients" (valeurs) à chaque fois.
Fermeture de la connexion
N'oubliez pas de fermer la cuisine lorsque vous avez fini de cuisiner ! Je veux dire, fermez la connexion à la base de données lorsque vous avez fini de faire des requêtes :
connection.end((err) => {
if (err) {
console.error('Erreur de fermeture de la connexion à la base de données : ' + err.stack);
return;
}
console.log('Connexion à la base de données fermée.');
});
Cela nous assure que nous ne laissons pas de connexions ouvertes, ce qui pourrait ralentir notre application ou le serveur de base de données.
Résumé des méthodes
Voici un tableau de réference des méthodes que nous avons apprises :
Méthode | Description |
---|---|
mysql.createConnection() |
Crée une connexion à la base de données MySQL |
connection.connect() |
Établit la connexion à la base de données |
connection.query() |
Exécute une requête SQL |
connection.end() |
Ferme la connexion à la base de données |
Conclusion
Félicitations ! Vous venez d'apprendre comment insérer des données dans une base de données MySQL en utilisant Node.js. Nous avons couvert les inserts simples, multiples, et même les instructions préparées. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces concepts.
Dans mes années d'enseignement, j'ai découvert que le meilleur moyen d'apprendre est de faire. Alors, pourquoi ne pas créer un petit projet ? Peut-être une simple application qui stocke vos recettes préférées dans une base de données ? De cette manière, vous pouvez pratiquer vos nouvelles compétences et ne jamais perdre la recette secrète de grand-mère pour les cookies !
Bonne programmation, et puissé vos bases de données toujours être correctement normalisées !
Credits: Image by storyset