Travailler avec les bases de données en JavaScript : PostgreSQL et MongoDB en pratique

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

Introduction : Pourquoi un développeur devrait-il connaître SQL et NoSQL ?

Le développement web moderne en JavaScript (Node.js) se passe rarement d'interactions avec les bases de données. Le choix entre les SGBD relationnels (PostgreSQL) et orientés documents (MongoDB) est l'une des décisions architecturales clés. Dans cet article, nous allons voir en pratique comment se connecter aux deux bases de données, effectuer des opérations CRUD et choisir l'outil adapté à une tâche spécifique.

Nous utiliserons les bibliothèques populaires : pg pour PostgreSQL et mongoose pour MongoDB. Tous les exemples de code sont en Node.js.



1. PostgreSQL dans Node.js : l'approche relationnelle

1.1. Connexion et configuration

PostgreSQL est un SGBD relationnel puissant avec prise en charge de SQL. Pour l'utiliser dans Node.js, installez le paquet pg :

npm install pg

Exemple de connexion à la base de données locale mydb :

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

const pool = new Pool({ user: 'postgres', host: 'localhost', database: 'mydb', password: 'secret', port: 5432,});

// Test de la connexionpool.query('SELECT NOW()', (err, res) => { if (err) { console.error('Erreur de connexion :', err); } else { console.log('Connecté à PostgreSQL :', res.rows[0].now); }});


1.2. Opérations CRUD (création, lecture, mise à jour, suppression)

Créons la table users et effectuons les opérations de base.

Création de la table :

const createTable = async () => {  const query = `    CREATE TABLE IF NOT EXISTS users (      id SERIAL PRIMARY KEY,      name VARCHAR(100) NOT NULL,      email VARCHAR(100) UNIQUE NOT NULL,      age INTEGER    );  `;  await pool.query(query);  console.log('Table users créée');};

createTable();

Insertion de données (INSERT) :

const addUser = async (name, email, age) => {  const query = 'INSERT INTO users (name, email, age) VALUES ($1, $2, $3) RETURNING *';  const values = [name, email, age];  const res = await pool.query(query, values);  console.log('Utilisateur ajouté :', res.rows[0]);};

addUser('Ivan Petrov', 'ivan@example.com', 30);

Lecture de données (SELECT) :

const getUsers = async () => {  const res = await pool.query('SELECT * FROM users');  console.log('Tous les utilisateurs :', res.rows);};

getUsers();

Mise à jour de données (UPDATE) :

const updateUserAge = async (id, newAge) => {  const query = 'UPDATE users SET age = $1 WHERE id = $2 RETURNING *';  const values = [newAge, id];  const res = await pool.query(query, values);  console.log('Utilisateur mis à jour :', res.rows[0]);};

updateUserAge(1, 31);

Suppression de données (DELETE) :

const deleteUser = async (id) => {  const query = 'DELETE FROM users WHERE id = $1 RETURNING *';  const values = [id];  const res = await pool.query(query, values);  console.log('Utilisateur supprimé :', res.rows[0]);};

deleteUser(1);

Notez l'utilisation de requêtes paramétrées ($1, $2). Cela protège contre les injections SQL.



1.3. Quand choisir PostgreSQL ?

  • Une structure de données stricte et la prise en charge de l'intégrité (clés étrangères, transactions) sont requises.
  • Des requêtes JOIN complexes et des agrégations sont nécessaires.
  • Travail avec des données financières ou critiques.
  • Le projet utilise un ORM comme Sequelize ou TypeORM.


2. MongoDB dans Node.js : la flexibilité du NoSQL

2.1. Connexion via Mongoose

MongoDB est une base de données orientée documents, où les données sont stockées au format JSON-like (BSON). Pour l'utiliser, installez mongoose :

npm install mongoose

Connexion au serveur local Mo

Blogs

Book Recommendations