La base de données est MySQL
Installation de Prisma
npm init -y npm install express @prisma/client npx tsc --init // va créer le fichier tsconfig.json npx prisma --init // Fetching latest updates for this subcommand... ✔ Your Prisma schema was created at prisma/schema.prisma You can now open it in your favorite editor. warn You already have a .gitignore file. Don't forget to add `.env` in it to not commit any private information. Next steps: 1. Run prisma dev to start a local Prisma Postgres server. 2. Define models in the schema.prisma file. 3. Run prisma migrate dev to migrate your local Prisma Postgres database. 4. Tip: Explore how you can extend the ORM with scalable connection pooling, global caching, and a managed serverless Postgres database. Read: https://pris.ly/cli/beyond-orm More information in our documentation: https://pris.ly/d/getting-started
A ce stade un fichier .env et un répertoire prisma a été créé. Le .env contient la chaine de connexion, par défaut c’est pour du postgres, mais on va changer en mysql. Il faut créer la base prisma_demo_ts avant de faire les opérations de migration.
DATABASE_URL="mysql://root:password@localhost:3306/prisma_demo_ts"
Maintenant on va constituer un fichier de modèle pour créer les tables dans
Création des fichiers de migration et migration dans la même commande !
npx prisma migrate dev --name add-user-contact-table
Environment variables loaded from .env
Prisma schema loaded from prisma\schema.prisma
Datasource "db": MySQL database "prisma_demo_ts" at "localhost:3306"
Applying migration `20251018092422_add_user_contact_table`
The following migration(s) have been created and applied from new schema changes:
prisma\migrations/
└─ 20251018092422_add_user_contact_table/
└─ migration.sql
Your database is now in sync with your schema.
Le script index.ts
import express from 'express'
import { PrismaClient } from '@prisma/client'
const app = express()
const prisma = new PrismaClient()
app.use(express.json())
// GET all users
app.get('/users', async (req, res) => {
const users = await prisma.user.findMany()
res.json(users)
})
// POST new user
app.post('/users', async (req, res) => {
const { name, email } = req.body
const user = await prisma.user.create({ data: { name, email } })
res.json(user)
})
app.listen(3000, () => console.log('🚀 Serveur démarré sur http://localhost:3000'))
Si vous avez une erreur de type commonJS blabla, c’est que la syntaxe import n’est pas commonJs. Pour voir la différence entre commonJS et ESM voir cet article.
Si vous avez un message d’avertissement relatif à verbatimModuleSyntax, commentez la ligne dans tsconfig.json.
Pour lancer la compilation du fichier index.ts, désignez le répertoire de sortie des fichier JS, c’est dans tsconfig.json, la clé outDir doit être décommentée : « outDir »: « ./dist »,
npx tsc ensuite faites node node dist/index.js