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

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 au travail avec les bases de données en JavaScript

Le développement web moderne en JavaScript est impensable sans interaction avec les bases de données. Node.js fournit des outils puissants pour travailler à la fois avec des bases de données relationnelles (SQL) et orientées documents (NoSQL). Dans cet article, nous allons détailler la connexion et l'exécution des opérations de base avec les deux SGBD les plus populaires dans l'écosystème JavaScript : PostgreSQL et MongoDB.

Vous apprendrez comment installer les pilotes, configurer la connexion, effectuer des opérations CRUD (Create, Read, Update, Delete) et faire le bon choix entre SQL et NoSQL pour votre projet.



Préparation de l'environnement

Pour travailler avec les exemples, vous aurez besoin de Node.js installé (version 18+) et du gestionnaire de paquets npm. Assurez-vous que les bases de données sont lancées localement ou accessibles à distance.



1. Travailler avec PostgreSQL dans Node.js

PostgreSQL est une base de données relationnelle open source puissante. Pour travailler avec elle dans Node.js, nous utiliserons la bibliothèque pg — le client officiel.



Installation et connexion

npm install pg

Créons un fichier db.js pour configurer le pool de connexions :

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

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

module.exports = pool;


Opérations CRUD avec PostgreSQL

Examinons les requêtes de base sur la table users :



Création de table (CREATE)

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


Insertion de données (INSERT)

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

// UtilisationaddUser('Иван Петров', 'ivan@example.com', 30);


Lecture de données (SELECT)

const getUsers = async (ageLimit) => {  const res = await pool.query(    'SELECT * FROM users WHERE age > $1 ORDER BY created_at DESC',    [ageLimit]  );  return res.rows;};

// Obtenir les utilisateurs de plus de 25 ansgetUsers(25).then(users => console.log(users));


Mise à jour et suppression (UPDATE / DELETE)

const updateUser = async (id, newName) => {  const res = await pool.query(    'UPDATE users SET name = $1 WHERE id = $2 RETURNING *',    [newName, id]  );  return res.rows[0];};

const deleteUser = async (id) => { await pool.query('DELETE FROM users WHERE id = $1', [id]); console.log(`Utilisateur avec l'id ${id} supprimé`);};

Important : Utilisez toujours des requêtes paramétrées ($1, $2) pour prévenir les injections SQL.



2. Travailler avec MongoDB dans Node.js

MongoDB est la base de données NoSQL la plus populaire, stockant les données au format de documents JSON-like. Pour travailler avec elle, nous utilisons le pilote officiel mongodb ou la bibliothèque ODM populaire mongoose.



Installation et connexion (avec mongoose)

npm install mongoose
const mongoose = require('mongoose');

const connectDB = async () => { try { await mongoose.connect('mongodb://localhost:27017/mydb'); console.log('MongoDB connectée'); } catch (error) { console.error('Erreur de connexion :', error); }};

connectDB();


Définition du schéma et du modèle

Blogs

Book Recommendations