Prisma؛ ORM نسل جدید برای Node.js و TypeScript
خلاصهٔ کاملتر
Prisma یه ORM نسلجدید برای Node.js و TypeScript هست که کار با دیتابیس رو ساده میکنه. از سه بخش اصلی تشکیل شده: Prisma Client (یه کوئریبیلدر تایپسیف که خودکار تولید میشه)، Prisma Migrate (سیستم مدلسازی داده و مایگریشن) و Prisma Studio (یه رابط گرافیکی برای دیدن و ویرایش دادهها).
طبق مستندات، هر پروژه با یه فایل schema شروع میشه که توش سه چیز رو تعریف میکنی: منبع داده (نوع دیتابیس)، ژنراتور (که میگه Prisma Client تولید بشه) و مدل داده (مدلهای اپلیکیشنت که هر کدوم یه جدول تو دیتابیس رو نشون میدن). یه مدل ساده اینشکلیه:
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}بعد از اینکه مدل رو نوشتی، با دستور prisma generate کلاینت ساخته میشه و میتونی import و ازش کوئری بزنی. نکتهٔ جالب اینه که همهٔ کوئریها آبجکتهای سادهٔ جاوااسکریپت برمیگردونن و اگه TypeScript استفاده کنی، نتیجهٔ هر کوئری بهصورت استاتیک تایپ میشه؛ یعنی نمیتونی اشتباهی به فیلدی که وجود نداره دسترسی بگیری و تایپوها موقع کامپایل گرفته میشن.
مثلاً برای گرفتن همهٔ کاربرها همراه پستهاشون کافیه از include استفاده کنی:
const allUsers = await prisma.user.findMany({
include: { posts: true },
})Prisma رو میتونی تو هر بکاند Node.js یا TypeScript - از REST و GraphQL و gRPC گرفته تا سرورلس و میکروسرویس - استفاده کنی. جزئیات اتصال به دیتابیس هم از طریق فایل prisma.config.ts تعریف میشه، هرچند Prisma خودش فایلهای .env رو خودکار نمیخونه و برای این کار باید از پکیجی مثل dotenv کمک بگیری.
نکات کلیدی:
- Prisma یه ORM تایپسیف برای Node.js و TypeScript هست
- از سه ابزار تشکیل شده: Client، Migrate و Studio
- کار با یه فایل schema برای تعریف مدلها شروع میشه
- کوئریها با TypeScript کاملاً تایپسیف میشن و خطاها موقع کامپایل گرفته میشن




