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

\n\n

Le développement web moderne ne se passe rarement de bases de données. TypeScript, en tant que surcouche strictement typée de JavaScript, offre d'excellentes possibilités pour un travail sécurisé et prévisible avec les données. Dans cet article, nous allons voir comment connecter et utiliser deux bases de données populaires — la relationnelle PostgreSQL et la base orientée documents MongoDB — dans des projets TypeScript. Ce contenu est destiné aux développeurs débutants connaissant les bases de TypeScript et Node.js.

\n\n

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

\n\n

Avant de commencer, assurez-vous d'avoir Node.js et npm installés. Pour travailler avec TypeScript, installez le compilateur et les types pour Node.js :

\n\n
npm install -g typescript\nnpm init -y\nnpm install typescript @types/node --save-dev\nnpx tsc --init
\n\n

Pour travailler avec les bases de données, nous utiliserons des bibliothèques populaires :

\n
    \n
  • TypeORM — ORM pour PostgreSQL (et autres bases SQL)
  • \n
  • Mongoose — ODM pour MongoDB
  • \n
\n\n

Installez-les dans votre projet :

\n\n
npm install typeorm reflect-metadata pg\nnpm install mongoose
\n\n

N'oubliez pas d'ajouter "experimentalDecorators": true et "emitDecoratorMetadata": true dans le fichier tsconfig.json.

\n\n

2. Travailler avec PostgreSQL via TypeORM

\n\n

PostgreSQL est un SGBD relationnel puissant. TypeORM permet de travailler avec lui via des entités (entities) et des repositories, rendant le code propre et typé.

\n\n

2.1. Création de la connexion et de l'entité

\n\n

Créons un fichier data-source.ts pour configurer la connexion :

\n\n
import { DataSource } from "typeorm";\n\nexport const AppDataSource = new DataSource({\n    type: "postgres",\n    host: "localhost",\n    port: 5432,\n    username: "your_user",\n    password: "your_password",\n    database: "your_db",\n    synchronize: true,\n    logging: false,\n    entities: ["src/entity/**/*.ts"],\n});
\n\n

Créons maintenant l'entité User dans le fichier src/entity/User.ts :

\n\n
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";\n\n@Entity()\nexport class User {\n    @PrimaryGeneratedColumn()\n    id: number;\n\n    @Column()\n    name: string;\n\n    @Column({ unique: true })\n    email: string;\n\n    @Column()\n    age: number;\n}
\n\n

2.2. Opérations CRUD avec TypeORM

\n\n

Exemple de création et de récupération d'utilisateurs :

\n\n
import { AppDataSource } from "./data-source";\nimport { User } from "./entity/User";\n\nasync function main() {\n    await AppDataSource.initialize();\n    const userRepository = AppDataSource.getRepository(User);\n\n    // Création\n    const newUser = userRepository.create({\n        name: "Ivan",\n        email: "ivan@example.com",\n        age: 25\n    });\n    await userRepository.save(newUser);\n    console.log("Utilisateur créé :", newUser);\n\n    // Lecture de tous\n    const users = await userRepository.find();\n    console.log("Tous les utilisateurs :", users);\n\n    // Mise à jour\n    await userRepository.update({ id: 1 }, { age: 26 });\n\n    // Suppression\n    await userRepository.delete({ id: 1 });\n}\n\nmain().catch(console.error);
\n\n

TypeORM génère automatiquement les requêtes SQL, et le typage TypeScript protège contre les erreurs à la compilation.

\n\n

3. Travailler avec MongoDB via Mongoose

\n\n

MongoDB est une base de données NoSQL qui stocke les données dans un format similaire au JSON. Mongoose fournit un schéma et une validation pour TypeScript.

\n\n

3.1. Connexion et définition du schéma

\n\n

Créons un fichier db.ts pour la connexion :

\n\n
import mongoose from "mongoose";\n\nexport async function connectDB() {\n    await mongoose.connect("mongodb://localhost:27017/mydb");\n    console.log("Connecté à MongoDB");\n}

Blogs

Book Recommendations