OUJOOD.COM
Pourquoi créer une base de données depuis Node.js ?
Quand vous développez une application Node.js qui utilise MySQL, vous avez souvent besoin de créer la base de données au démarrage du projet ou lors d'une procédure d'installation automatisée. Plutôt que d'ouvrir phpMyAdmin ou un terminal MySQL séparé, vous pouvez envoyer la commande SQL directement depuis votre script Node.js, via la méthode con.query() du module mysql.
C'est l'approche classique dans les projets Node.js : tout se configure depuis le code, y compris la création de la structure de données.
La commande SQL : CREATE DATABASE
En MySQL, la commande pour créer une base de données s'écrit ainsi :
CREATE DATABASE IF NOT EXISTS nom_base_de_donnees;
Ce que fait chaque partie
CREATE DATABASE demande à MySQL de créer une nouvelle base de données portant le nom indiqué.
IF NOT EXISTS est une précaution utile : si une base du même nom existe déjà, MySQL n'exécute rien et ne retourne pas d'erreur. Sans cette clause, la commande échouerait avec un message d'erreur si la base existe. Dans un script automatisé, c'est presque toujours ce qu'on veut.
nom_base_de_donnees est le nom que vous choisissez — par exemple boutique, blog ou gestion_clients. Pas d'espaces, pas d'accents, underscores acceptés.
Utiliser con.query() dans Node.js
Une fois connecté à MySQL via le module mysql, la méthode con.query() sert à envoyer n'importe quelle commande SQL au serveur. Elle prend deux paramètres : la requête SQL sous forme de chaîne, et une fonction de rappel qui reçoit le résultat ou l'erreur.
con.query("CREATE DATABASE IF NOT EXISTS nom_base_de_donnees;", function (err, result) {
if (err) throw err;
console.log("Base de données créée avec succès");
});
Détail de la fonction de rappel
Le deuxième argument de con.query() est une fonction qui s'exécute une fois que MySQL a traité la requête. Elle reçoit deux valeurs :
- err : contient un objet d'erreur si quelque chose a mal tourné (connexion coupée, syntaxe SQL incorrecte, droits insuffisants). Le
if (err) throw err;interrompt l'exécution et affiche l'erreur dans la console. - result : contient les données retournées par MySQL. Pour un
CREATE DATABASE, ce n'est pas très utile, mais pour unSELECTpar exemple, c'est là que vous récupérerez les lignes.
Exemple complet : créer et vérifier la base de données
Voici un script complet qui se connecte à MySQL, crée la base de données madb si elle n'existe pas, puis affiche la liste de toutes les bases présentes sur le serveur pour confirmer.
var mysql = require('mysql');
// Paramètres de connexion au serveur MySQL
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "mypassword"
});
con.connect(function (err) {
if (err) throw err;
console.log("Connecté !");
// Création de la base de données si elle n'existe pas
con.query("CREATE DATABASE IF NOT EXISTS madb;", function (err, result) {
if (err) throw err;
console.log("Base de données créée avec succès");
});
// Affichage de toutes les bases disponibles
con.query("SHOW DATABASES;", function (err, result) {
if (err) throw err;
console.log("Bases de données disponibles :");
for (var i = 0; i < result.length; i++) {
console.log(JSON.stringify(result[i]));
}
});
// Fermeture propre de la connexion
con.end();
});
Explication étape par étape
1. Charger le module mysql
require('mysql') importe le module npm qui gère la communication avec le serveur MySQL. Si vous ne l'avez pas encore installé, lancez npm install mysql dans votre projet.
2. Créer la connexion
mysql.createConnection() prépare l'objet de connexion avec trois informations : l'adresse du serveur (host), le nom d'utilisateur (user) et le mot de passe (password). À ce stade, aucune connexion n'est encore ouverte.
3. Se connecter avec con.connect()
con.connect() ouvre réellement la connexion. La fonction de rappel s'exécute dès que la connexion est établie ou qu'une erreur survient. Tout le reste du code (les requêtes) s'exécute à l'intérieur de cette fonction.
4. Créer la base de données
Le premier con.query() envoie CREATE DATABASE IF NOT EXISTS madb;. Si la base madb n'existe pas, MySQL la crée. Sinon, rien ne se passe.
5. Lister les bases disponibles
Le deuxième con.query() exécute SHOW DATABASES;. Le résultat est un tableau d'objets, chacun représentant une base de données. La boucle for les affiche un par un avec JSON.stringify().
6. Fermer la connexion
con.end() ferme la connexion proprement une fois les requêtes terminées. Ne pas oublier cette étape : une connexion laissée ouverte consomme des ressources côté serveur.
Résultat attendu dans la console
Connecté !
Base de données créée avec succès
Bases de données disponibles :
{"Database":"information_schema"}
{"Database":"mysql"}
{"Database":"performance_schema"}
{"Database":"sys"}
{"Database":"madb"}
Bonne pratique : ne pas stocker les mots de passe en dur
Dans l'exemple ci-dessus, le mot de passe est écrit directement dans le code. C'est acceptable pour un test local, mais à éviter en production ou sur un dépôt Git. L'approche standard consiste à utiliser des variables d'environnement, avec un fichier .env et le module dotenv :
require('dotenv').config();
var con = mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASS
});
Votre fichier .env contient alors les valeurs réelles, et vous l'ajoutez à .gitignore pour ne pas l'exposer.
Par carabde | Mis à jour le 13 mai 2026