Travailler avec les bases de données en TypeScript : PostgreSQL et MongoDB pour débutants

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 TypeScript : PostgreSQL et MongoDB pour débutants



TypeScript est une extension fortement typée de JavaScript qui apporte fiabilité et prévisibilité au code. Lors du travail avec des bases de données (BDD), TypeScript est particulièrement utile : vous pouvez définir des types pour les entités, vérifier la validité des requêtes au moment de la compilation et éviter de nombreuses erreurs d'exécution. Dans cet article, nous verrons comment se connecter aux deux bases de données les plus populaires — la relationnelle PostgreSQL et l'orientée documents MongoDB — et effectuer des opérations de base sur les données. Ce contenu est destiné aux développeurs débutants connaissant les bases de TypeScript.



Préparation de l'environnement et installation des dépendances



Avant d'écrire du code, il est nécessaire de configurer le projet. Créez un nouveau répertoire et initialisez le projet :



mkdir ts-db-examplecd ts-db-examplenpm init -ynpm install typescript @types/node ts-node --save-devnpx tsc --init


Installons maintenant les bibliothèques pour travailler avec les bases de données. Pour PostgreSQL, nous utiliserons TypeORM (un ORM populaire avec une bonne prise en charge de TypeScript), et pour MongoDB — Mongoose (une bibliothèque pour modéliser les schémas et travailler avec MongoDB).



npm install typeorm reflect-metadata pgnpm install mongoose


Installons également les types pour Node.js et les configurations pour TypeORM :



npm install @types/node --save-dev


Dans le fichier tsconfig.json, assurez-vous d'activer les options :



{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "experimentalDecorators": true,    "emitDecoratorMetadata": true  }}


La structure du projet est maintenant prête. Créez un dossier src et, à l'intérieur, les fichiers pour travailler avec chaque base de données.



Travailler avec PostgreSQL via TypeORM



Configuration de la connexion



TypeORM permet de travailler avec la base de données via des décorateurs et des entités. Créons un fichier src/postgres.ts et configurons la connexion à la base de données PostgreSQL locale ts_db :



import "reflect-metadata";import { DataSource } from "typeorm";

export const AppDataSource = new DataSource({ type: "postgres", host: "localhost", port: 5432, username: "postgres", password: "password", database: "ts_db", synchronize: true, // crée automatiquement les tables (uniquement pour le développement) logging: false, entities: ["src/entity/**/*.ts"],});


Création d'une entité (Entity)



Une entité est une classe qui est mappée à une table dans la base de données. Créons un dossier src/entity et un fichier User.ts :



import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()export class User { @PrimaryGeneratedColumn() id: number;

@Column({ length: 100 }) name: string;

@Column({ unique: true }) email: string;

@Column({ default: 18 }) age: number;}


Exécution des opérations CRUD



Écrivons maintenant les fonctions pour créer, lire, mettre à jour et supprimer des utilisateurs dans le fichier src/postgres-crud.ts :



import { AppDataSource } from "./postgres";import { User } from "./entity/User";

async function main() { await AppDataSource.initialize(); const userRepository = AppDataSource.getRepository(User);

// CREATE — création d'un nouvel utilisateur const newUser = userRepository.create({ name: "Ivan Petrov", email: "ivan@example.com", age: 25, }); await userRepository.save(newUser); console.log("Utilisateur créé :", newUser);

// READ — lecture de tous les utilisateurs const allUsers = await userRepository.find(); console.log("Tous les utilisateurs :", allUsers);

// UPDATE — mise à jour de l'âge de l'utilisateur avec id=1 const userToUpdate =

Blogs

Book Recommendations