In a NestJS app, you want to ensure Prisma Client connects once on app start and disconnects on shutdown. Which approach is best?
hard📝 Application Q15 of 15
NestJS - Database with Prisma
In a NestJS app, you want to ensure Prisma Client connects once on app start and disconnects on shutdown. Which approach is best?
ACall prisma.$connect() before every query and prisma.$disconnect() after every query
BCreate a new PrismaClient instance inside every controller method
CCreate PrismaClient instance in a service, call prisma.$connect() in onModuleInit(), and prisma.$disconnect() in onModuleDestroy()
DUse PrismaClient without calling connect or disconnect methods
Step-by-Step Solution
Solution:
Step 1: Understand PrismaClient lifecycle
PrismaClient should connect once when app starts and disconnect on shutdown to manage resources efficiently.
Step 2: Evaluate options
Creating a single PrismaClient instance in a service and using $connect() in onModuleInit() and $disconnect() in onModuleDestroy() leverages NestJS lifecycle hooks properly. Connecting/disconnecting per query, creating new instances per method, or skipping explicit management leads to overhead or resource leaks.
Final Answer:
Create PrismaClient instance in a service, call prisma.$connect() in onModuleInit(), and prisma.$disconnect() in onModuleDestroy() -> Option C
Quick Check:
Use lifecycle hooks for Prisma connection [OK]
Quick Trick:Connect once on start, disconnect on shutdown using lifecycle hooks [OK]
Common Mistakes:
Creating PrismaClient multiple times
Connecting/disconnecting on every query
Ignoring connect/disconnect lifecycle
Master "Database with Prisma" in NestJS
9 interactive learning modes - each teaches the same concept differently