Next.js 15: fullstack-webbappar · Lektion

CRUD-operationer med Prisma Client

Utför Create-, Read-, Update- och Delete-operationer med den typsäkra Prisma Client.

Lektion 3 av 412 steg

CRUD-operationer med Prisma Client är en gratis lektion i Next.js 15: fullstack-webbappar på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Next.js 15: fullstack-webbappar, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Next.js 15: fullstack-webbappar innehåller totalt 4 lektioner.

Introduktion till CRUD med Prisma

Välkommen! I den här lektionen lär vi oss att behärska CRUD-operationer med Prisma Client. CRUD står för Create, Read, Update och Delete – de fyra grundläggande operationerna för att interagera med alla databaser.

Prisma Client erbjuder ett typsäkert och intuitivt sätt att utföra dessa åtgärder, vilket gör dina databasinteraktioner effektiva och mindre felbenägna.

Skapa en instans av Prisma Client

Innan du utför några databasoperationer måste du skapa en instans av Prisma Client. Den här klienten genereras automatiskt utifrån filen schema.prisma och kopplar programmet till databasen.

Vanligtvis gör du detta en gång i programmets startpunkt eller i en separat databasmodul.

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  console.log('Prisma Client initialized!');
  // Database operations go here
}

main()
  .catch(e => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

Create: lägga till nya data

Operationen Create lägger till nya poster i databasen. Med Prisma använder du metoden create på en modell för att infoga data.

  • Ange modellen (till exempel prisma.user).
  • Ange data för den nya posten i objektet data.
  • Prisma hanterar SQL-infogningen åt dig!

Detta förutsätter att du har definierat en modell User i schema.prisma.

Create: lägga till en användarpost

Vi skapar en ny post av typen User. Lägg märke till hur Prisma Client erbjuder automatisk komplettering för fält som email och name, vilket säkerställer typsäkerhet.

Kör det här exemplet för att se hur en ny användare läggs till.

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  console.log('Creating a new user...');
  const newUser = await prisma.user.create({
    data: {
      email: 'alice@example.com',
      name: 'Alice Smith',
    },
  });
  console.log('Created user:', newUser.name, 'with ID:', newUser.id);
}

main()
  .catch(e => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

Read: hämta flera poster

Operationen Read hämtar data. Om du vill hämta flera poster använder du metoden findMany. Du kan filtrera resultaten med satsen where, sortera dem med orderBy eller begränsa antalet med take.

Till exempel hittar prisma.user.findMany({ where: { name: 'Alice Smith' } }) alla användare som heter Alice Smith.

Read: hämta en enskild post

Om du vill hämta en enskild, unik post använder du findUnique. Den här metoden kräver en unik identifierare (till exempel ett @id- eller @unique-fält i schemat) för att säkerställa att endast en post returneras.

Om du behöver hitta den första posten som matchar ett icke-unikt villkor använder du findFirst. Den returnerar null om ingen post hittas.

Read: hämta användare från databasen

Vi hämtar alla användare och hittar sedan en specifik användare utifrån e-postadressen med findUnique. Det visar hur du hämtar både listor och enskilda objekt.

Kör koden för att se resultatet av dessa frågor.

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  console.log('Fetching all users...');
  const allUsers = await prisma.user.findMany();
  console.log('All users:', allUsers.map(u => u.name).join(', '));

  console.log('Finding user by unique email...');
  const alice = await prisma.user.findUnique({
    where: {
      email: 'alice@example.com',
    },
  });
  if (alice) {
    console.log('Found Alice:', alice.name);
  } else {
    console.log('Alice not found.');
  }
}

main()
  .catch(e => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

Update: ändra befintliga data

Operationen Update ändrar befintliga poster. Metoden update kräver två huvuddelar:

  • En sats med where som identifierar posten eller posterna som ska uppdateras.
  • Ett objekt med data som innehåller fälten och de nya värdena som ska anges.

Se alltid till att satsen med where är tillräckligt specifik för att undvika oavsiktliga uppdateringar!

Update: ändra en användares namn

Vi uppdaterar användaren 'Alice Smith' till 'Alicia Wonderland'. Lägg märke till hur vi identifierar användaren med den unika e-postadressen och sedan anger det nya värdet för name.

När du har kört koden kan du försöka hämta Alice igen för att se det uppdaterade namnet.

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function main() {
  console.log('Updating user Alice Smith...');
  const updatedUser = await prisma.user.update({
    where: {
      email: 'alice@example.com',
    },
    data: {
      name: 'Alicia Wonderland',
    },
  });
  console.log('Updated user:', updatedUser.email, 'now named:', updatedUser.name);
}

main()
  .catch(e => {
    console.error(e);
    process.exit(1);
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

Delete: ta bort data

Slutligen tar operationen Delete bort poster från databasen. Metoden delete kräver, precis som update, en sats med where som anger vilken post eller vilka poster som ska tas bort.

Var försiktig med borttagningsoperationer, eftersom de är permanenta! Kontrollera alltid villkoret i where noggrant.

Kontroll av CRUD-operationer

Vilken Prisma Client-metod skulle du använda för att ta bort en specifik användarpost från databasen?

Repetition: CRUD med Prisma

Bra jobbat! Du har lärt dig grunderna i databasinteraktion med Prisma Client.

  • Create (C): Använd prisma.model.create() för att lägga till nya poster.
  • Read (R): Använd prisma.model.findMany() för listor och findUnique() eller findFirst() för enskilda poster.
  • Update (U): Använd prisma.model.update() för att ändra befintliga poster.
  • Delete (D): Använd prisma.model.delete() för att ta bort poster.

Prismas typsäkerhet och intuitiva API gör dessa grundläggande operationer enkla och robusta i dina Next.js-applikationer.

Gratis att börja

Lär dig TypeScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”CRUD-operationer med Prisma Client” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Next.js 15: fullstack-webbappar, inklusive ”CRUD-operationer med Prisma Client”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Next.js 15: fullstack-webbappar innehåller totalt 4 lektioner.

Vad lär jag mig i ”CRUD-operationer med Prisma Client”?

Utför Create-, Read-, Update- och Delete-operationer med den typsäkra Prisma Client. Ni övar på Next.js 15: fullstack-webbappar med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Next.js 15: fullstack-webbappar?

Du behöver inga förkunskaper. Utbildningen i Next.js 15: fullstack-webbappar på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”CRUD-operationer med Prisma Client”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Next.js 15: fullstack-webbappar-lektionen?

Ja. Varje Next.js 15: fullstack-webbappar-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Introduktion till Prisma ORM
  2. Prisma-schemadesign och migreringar
  3. CRUD-operationer med Prisma Client
  4. Relationer och avancerade frågor med Prisma
← Tillbaka till Next.js 15: fullstack-webbappar