Opérations CRUD avec les actions serveur
Effectuez des opérations de création, lecture, mise à jour et suppression (CRUD) sur votre base de données avec les actions serveur.
Opérations CRUD avec les actions serveur est une leçon Next.js 15 Fullstack (App Router + Server Actions) gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Next.js 15 Fullstack (App Router + Server Actions), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Next.js 15 Fullstack (App Router + Server Actions) comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
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!
Questions Fréquemment Posées
La leçon « Opérations CRUD avec les actions serveur » est-elle gratuite ?
Oui — le texte complet de « Opérations CRUD avec les actions serveur » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Next.js 15 Fullstack (App Router + Server Actions), passe à CoddyKit PRO. Le cours Next.js 15 Fullstack (App Router + Server Actions) comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Opérations CRUD avec les actions serveur » ?
Effectuez des opérations de création, lecture, mise à jour et suppression (CRUD) sur votre base de données avec les actions serveur. Tu pratiques Next.js 15 Fullstack (App Router + Server Actions) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Next.js 15 Fullstack (App Router + Server Actions) ?
Aucune expérience préalable n'est requise. Next.js 15 Fullstack (App Router + Server Actions) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Opérations CRUD avec les actions serveur » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Next.js 15 Fullstack (App Router + Server Actions) ?
Oui. Chaque leçon Next.js 15 Fullstack (App Router + Server Actions) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Configurer Prisma ORM
- Opérations CRUD avec les actions serveur
- Migrations de schéma de base de données
- Initialisation de la base de données et mise en commun des connexions