CRUD mit Server Actions
Führen Sie mit Server Actions Create-, Read-, Update- und Delete-(CRUD-)Operationen in Ihrer Datenbank aus.
CRUD mit Server Actions ist eine kostenlose Next.js 15 Fullstack (App Router + Server Actions)-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Next.js 15 Fullstack (App Router + Server Actions)-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Next.js 15 Fullstack (App Router + Server Actions)-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
CRUD: Database Actions Made Easy
Welcome to CRUD operations with Next.js Server Actions! CRUD stands for Create, Read, Update, and Delete. These are the four fundamental operations for interacting with any database.
Server Actions provide a powerful way to perform these operations directly on the server, keeping your client-side bundle small and improving security.
Recap: Prisma & Server Actions
In the previous lesson, we set up Prisma. We'll use Prisma Client to interact with our database. Remember, Server Actions are asynchronous functions that run on the server.
They can be defined directly in a component or in a separate actions.js file. We'll use a simple Post model for our examples.
Create: Adding New Data
Let's start with Create. This involves adding a new record to your database. We'll create a simple form that uses a Server Action to add a new post.
Notice how the form's action attribute directly calls our server function. This avoids client-side JavaScript for form submission.
Create: Code Example
Here's how to create a new post using a Server Action. We import our Prisma client and use its create method.
import { prisma } from '@/lib/prisma';
import { revalidatePath } from 'next/cache';
export default function CreatePostPage() {
async function createPost(formData: FormData) {
'use server';
const title = formData.get('title') as string;
const content = formData.get('content') as string;
await prisma.post.create({
data: { title, content, published: false },
});
revalidatePath('/posts'); // Refresh the posts list
}
return (
<form action={createPost}>
<input type="text" name="title" placeholder="Title" />
<textarea name="content" placeholder="Content"></textarea>
<button type="submit">Add Post</button>
</form>
);
}Read: Fetching Existing Data
The Read operation retrieves data from your database. In Next.js App Router, you can fetch data directly in Server Components.
This means your data fetching logic runs on the server, before the component is sent to the client, improving initial load times.
Read: Code Example
Here's a Server Component that fetches all posts and displays them. The await prisma.post.findMany() call runs entirely on the server.
import { prisma } from '@/lib/prisma';
export default async function PostsPage() {
const posts = await prisma.post.findMany();
return (
<div>
<h1>All Posts</h1>
<ul>
{posts.map((post) => (
<li key={post.id}>
<b>{post.title}</b>
<p>{post.content}</p>
</li>
))}
</ul>
</div>
);
}Update: Modifying Records
Update operations change existing records. You'll typically identify the record by its unique ID and then provide the new data.
Similar to Create, an update action can be triggered from a form submission or a button click, executing server-side logic.
Update: Code Example
This Server Action updates a post's published status. We identify the post by id and use Prisma's update method.
import { prisma } from '@/lib/prisma';
import { revalidatePath } from 'next/cache';
export async function updatePostStatus(id: number, published: boolean) {
'use server';
await prisma.post.update({
where: { id },
data: { published: !published },
});
revalidatePath('/posts');
}
// Example usage in a component:
// <button onClick={() => updatePostStatus(post.id, post.published)}>
// Toggle Publish
// </button>Delete: Removing Data
Finally, Delete removes a record from the database. This is often triggered by a button and requires the record's unique identifier.
Always be careful with delete operations, as they are usually irreversible!
Delete: Code Example
Here's a Server Action for deleting a post. We use prisma.post.delete with a where clause to specify which record to remove.
import { prisma } from '@/lib/prisma';
import { revalidatePath } from 'next/cache';
export async function deletePost(id: number) {
'use server';
await prisma.post.delete({
where: { id },
});
revalidatePath('/posts'); // Refresh the posts list
}
// Example usage in a component:
// <button onClick={() => deletePost(post.id)}>
// Delete Post
// </button>CRUD Operations Check
You've learned about the four core CRUD operations. Which operation is used to retrieve existing data from the database?
Recap: CRUD with Actions
Today, you mastered performing Create, Read, Update, and Delete (CRUD) operations using Next.js Server Actions and Prisma.
- Create: Add new records.
- Read: Fetch records from the database.
- Update: Modify existing records.
- Delete: Remove records.
Server Actions make these operations efficient and secure by running them directly on the server, often requiring revalidatePath to update the UI after changes. Next, we'll explore database schema migrations!
Häufig gestellte Fragen
Ist die Lektion „CRUD mit Server Actions“ kostenlos?
Ja — der vollständige Text von „CRUD mit Server Actions“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Next.js 15 Fullstack (App Router + Server Actions)-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Next.js 15 Fullstack (App Router + Server Actions)-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „CRUD mit Server Actions“?
Führen Sie mit Server Actions Create-, Read-, Update- und Delete-(CRUD-)Operationen in Ihrer Datenbank aus. Du übst Next.js 15 Fullstack (App Router + Server Actions) mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Next.js 15 Fullstack (App Router + Server Actions) zu starten?
Keine Vorkenntnisse erforderlich. Next.js 15 Fullstack (App Router + Server Actions) auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „CRUD mit Server Actions“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Next.js 15 Fullstack (App Router + Server Actions)-Lektion Code schreiben und ausführen?
Ja. Jede Next.js 15 Fullstack (App Router + Server Actions)-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Prisma ORM einrichten
- CRUD mit Server Actions
- Migrationen von Datenbankschemas
- Datenbank-Seeding und Connection Pooling