advanced
Server Actions
Мутируйте data из forms или client events через server functions с validation, auth и revalidation.
Server Actions — async server functions из forms или client events. Выполняются на сервере с доступом к секретам и БД, затем могут revalidate кэш или redirect.
'use server';
export async function createPost(formData: FormData) {
const title = String(formData.get('title'));
await db.post.create({ data: { title } });
revalidatePath('/posts');
}
Валидируйте ввод, enforce auth и относитесь к actions как к HTTP-мутациям — важны идемпотентность и форма ошибок.
На интервью: actions против route handlers и revalidation после записей.
Типовые ошибки: auth пропущен, доверие скрытым полям формы, нет error feedback в UI.
Компромисс: удобные мутации против дисциплины безопасности и cache invalidation.
Чеклист:
- Валидация и авторизация каждого action.
- Revalidate tags или paths после мутаций.
- Структурированные ошибки для forms.
- Не отдавайте внутренние ошибки клиенту.