Prisma pour JavaScript (Node.js) : guide complet avec exemples
Prisma est un ORM (Object-Relational Mapping) moderne pour Node.js et TypeScript qui révolutionne la gestion des bases de données. Contrairement aux ORM traditionnels, Prisma propose un modèle de données déclaratif, une génération automatique d'un client typé et un outil puissant pour les migrations. Si vous en avez assez d'écrire manuellement des requêtes SQL, de vous perdre dans les types de données et les configurations ORM complexes, Prisma est la solution qu'il vous faut.
Pourquoi utiliser Prisma ? D'abord, elle garantit un typage sécurisé au niveau de la base de données. Cela signifie que les erreurs liées à des types de champs incorrects ou à des relations manquantes sont détectées à la compilation, et non à l'exécution. Ensuite, Prisma offre une API intuitive pour les opérations CRUD, le filtrage, le tri et l'agrégation des données. Enfin, elle génère automatiquement la documentation de votre schéma de données et facilite la gestion des modifications via les migrations.
Prisma prend en charge les principales bases de données relationnelles : PostgreSQL, MySQL, SQLite, SQL Server, et MongoDB (en mode Document). Grâce à son architecture, elle convient aussi bien aux petits projets qu'aux applications d'entreprise. Dans cet article, nous allons détailler l'installation, les méthodes essentielles et des exemples concrets d'utilisation de Prisma dans un environnement Node.js.
Installation
L'installation de Prisma se déroule en deux étapes : l'installation du CLI (Command Line Interface) et l'initialisation du projet. Exécutez les commandes suivantes dans le terminal de votre projet :
npm install prisma --save-dev
npm install @prisma/client
Après l'installation, initialisez Prisma dans le projet :
npx prisma init
Cette commande crée un dossier prisma avec un fichier schema.prisma et un fichier .env pour les variables d'environnement. Dans le fichier .env, indiquez la chaîne de connexion à votre base de données. Par exemple, pour PostgreSQL :
DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
Pour MySQL :
DATABASE_URL="mysql://user:password@localhost:3306/mydb"
Pour SQLite (base de données fichier) :
DATABASE_URL="file:./dev.db"
Démarrage rapide : un exemple minimal fonctionnel
Créons un modèle utilisateur simple et effectuons des opérations de base. Modifiez le fichier prisma/schema.prisma :
// prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite" // ou "postgresql", "mysql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
}
Exécutez maintenant la migration pour créer les tables dans la base de données :
npx prisma migrate dev --name init
Après une migration réussie, générez le Prisma Client :
npx prisma generate
Créez ensuite un fichier index.js et écrivez un script simple :
// index.js
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
// Créer un nouvel utilisateur
const user = await prisma.user.create({
data: {
email: 'alice@example.com',
name: 'Alice',
},
});
console.log('Utilisateur créé :', user);
// Créer un article pour l'utilisateur
const post = await prisma.post.create({
data: {
title: ' Aussi dans la bibliothèque
Client HTTP pour Swift (iOS/macOS) : top des bibliothèques pour travailler avec le réseau
Planificateur de tâches en C++ : création et gestion des tâches
Marten C# (.NET) : guide complet avec exemples
Travailler avec XML en PHP : DOMDocument, SimpleXML et XPath