Travail avec les bases de données en JavaScript : PostgreSQL et MongoDB sur Node.js

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec les Bases de Données en JavaScript : PostgreSQL et MongoDB sur Node.js



Le développement web moderne en JavaScript est impensable sans une gestion efficace des données. Node.js, en tant que plateforme serveur, fournit des outils puissants pour interagir avec divers systèmes de gestion de bases de données (SGBD). Dans cet article, nous examinerons en détail le travail avec deux solutions populaires — PostgreSQL relationnel et MongoDB orienté documents. Vous apprendrez comment vous connecter à ces bases de données, effectuer des opérations CRUD (créer, lire, mettre à jour, supprimer) et faire un choix éclairé entre elles.



Le matériel sera utile aussi bien pour les développeurs débutants qui apprennent tout juste le développement backend en JavaScript, que pour les spécialistes expérimentés souhaitant systématiser leurs connaissances. Tous les exemples de code sont écrits pour l'environnement d'exécution Node.js.



Configuration de l'Environnement et Installation des Pilotes



Avant de commencer, vous devez installer les packages appropriés via npm. Pour PostgreSQL, le pilote pg est utilisé, et pour MongoDB, le pilote officiel mongodb ou la bibliothèque ODM populaire mongoose est utilisé.



Créez un nouveau projet et installez les dépendances :



mkdir db-example && cd db-examplenpm init -ynpm install pg mongoose


Votre environnement est maintenant prêt pour les expériences. Assurez-vous que les serveurs de bases de données correspondants sont en cours d'exécution sur votre machine (PostgreSQL sur le port 5432 et MongoDB sur le port 27017).



1. Travail avec PostgreSQL via le Pilote pg



PostgreSQL est un SGBD relationnel puissant avec support SQL. Pour interagir avec lui dans Node.js, le package pg est utilisé, qui fournit à la fois un pool de connexions et un client individuel.



Examinons un exemple de base de connexion et d'exécution de requêtes :



const { Pool } = require('pg');

// Configuration du pool de connexionsconst pool = new Pool({ user: 'postgres', host: 'localhost', database: 'testdb', password: 'your_password', port: 5432,});

// Fonction asynchrone pour travailler avec la base de donnéesasync function runPostgresExample() { try { // Création d'une table await pool.query(` CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, age INTEGER ); `);

// INSERT — ajout de données const insertResult = await pool.query( 'INSERT INTO users (name, email, age) VALUES ($1, $2, $3) RETURNING *', ['Ivan Petrov', 'ivan@example.com', 30] ); console.log('Utilisateur ajouté :', insertResult.rows[0]);

// SELECT — lecture de données const selectResult = await pool.query('SELECT * FROM users'); console.log('Tous les utilisateurs :', selectResult.rows);

// UPDATE — mise à jour de données await pool.query( 'UPDATE users SET age = $1 WHERE name = $2', [31, 'Ivan Petrov'] ); console.log('Âge mis à jour');

// DELETE — suppression de données await pool.query('DELETE FROM users WHERE name = $1', ['Ivan Petrov']); console.log('Utilisateur supprimé'); } catch (err) { console.error('Erreur PostgreSQL :', err.message); } finally { await pool.end(); }}

runPostgresExample();


Notez l'utilisation de requêtes paramétrées avec les espaces réservés $1, $2, etc. Cela protège contre les injections SQL et constitue une bonne pratique. Un pool de connexions est recommandé pour les environnements de production car il gère efficacement les connexions.



2. Travail avec MongoDB via Mongoose



MongoDB est une base de données NoSQL qui stocke les données dans un format similaire au JSON (BSON). Mongoose fournit une abstraction pratique avec des schémas, une validation et des méthodes pour travailler avec les collections.



Exemple de connexion et d'opérations CRUD avec Mongoose :



const mongoose = require('mongoose');

// Définition du schéma utilisateur

Blogs

Book Recommendations