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.
  • Не отдавайте внутренние ошибки клиенту.