Prisma TypeScript: पूर्ण गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Prisma का परिचय: TypeScript के लिए आधुनिक ORM

Prisma एक आधुनिक ORM (Object-Relational Mapping) है जो TypeScript और Node.js के लिए डिज़ाइन किया गया है। यह डेटाबेस के साथ काम करने के तरीके को पूरी तरह से बदल देता है। पारंपरिक ORM जैसे Sequelize या TypeORM के विपरीत, Prisma एक डिक्लेरेटिव डेटा मॉडल, ऑटोमैटिक टाइप जनरेशन और एक सहज API प्रदान करता है। यह लाइब्रेरी PostgreSQL, MySQL, SQLite, SQL Server, MongoDB और CockroachDB को सपोर्ट करती है।

Prisma का मुख्य उद्देश्य डेटाबेस के साथ काम को सुरक्षित, तेज़ और आसान बनाना है। TypeScript के साथ एकीकरण के कारण, आपको कंपाइल टाइम पर ऑटो-कम्प्लीशन और टाइप चेकिंग मिलती है, जिससे रनटाइम एरर काफी कम हो जाते हैं। Prisma तीन मुख्य घटकों से बना है:

  • Prisma Client — डेटाबेस के साथ काम करने के लिए ऑटोमैटिकली जनरेटेड क्लाइंट
  • Prisma Migrate — माइग्रेशन प्रबंधन प्रणाली
  • Prisma Studio — डेटा देखने और संपादित करने के लिए GUI

Prisma इंस्टॉलेशन

TypeScript प्रोजेक्ट में Prisma इंस्टॉल करना npm के माध्यम से किया जाता है। पहले एक नया प्रोजेक्ट बनाएं:

mkdir my-prisma-project
cd my-prisma-project
npm init -y

Prisma CLI और Prisma Client इंस्टॉल करें:

npm install prisma @prisma/client --save

प्रोजेक्ट में Prisma को इनिशियलाइज़ करें:

npx prisma init

यह कमांड prisma डायरेक्टरी में schema.prisma फ़ाइल और एनवायरनमेंट वेरिएबल्स के लिए .env फ़ाइल बनाएगा।

त्वरित शुरुआत: कोड उदाहरण

यूज़र्स को मैनेज करने के लिए एक सरल ऐप बनाते हैं। पहले prisma/schema.prisma में मॉडल डिफ़ाइन करें:

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

model User {
  id        Int      @id @default(autoincrement())
  email     String   @unique
  name      String?
  posts     Post[]
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

model Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String?
  published Boolean  @default(false)
  author    User     @relation(fields: [authorId], references: [id])
  authorId  Int
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

SQLite में टेबल बनाने के लिए माइग्रेशन चलाएं:

npx prisma migrate dev --name init

अब index.ts फ़ाइल बनाएं और उपयोग का उदाहरण देखें:

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function main() {
  // यूज़र बनाना
  const user = await prisma.user.create({
    data: {
      email: 'alice@example.com',
      name: 'Alice',
      posts: {
        create: { title: 'Hello World' }
      }
    }
  })
  console.log('Created user:', user)

  // सभी यूज़र्स को उनके पोस्ट के साथ प्राप्त करना
  const users = await prisma.user.findMany({
    include: { posts: true }
  })
  console.log('All users:', JSON.stringify(users, null, 2))
}

main()
  .catch(e => console.error(e))
  .finally(async () => await prisma.$disconnect())

कोड चलाएं:

npx ts-node index.ts

Prisma Client के मुख्य तरीके

1. findUnique

क्या करता है: यूनिक आइडेंटिफ़ायर (id, email आदि) के आधार पर एक रिकॉर्ड ढूंढता है।

पैरामीटर:

  • where — सर्च शर्तों वाला ऑब्जेक्ट (आवश्यक)
  • include — (वैकल्पिक) संबंधित मॉडल शामिल करने के लिए
  • select — (वैकल्पिक) विशिष्ट फ़ील्ड चुनने के लिए

उदाहरण:

const user = await prisma.user.findUnique({
  where: { email: 'alice@example.com' },
  include: { posts: true }
})

2. findFirst

अनुशंसाएँ