AgentSkillsCN

managing-server-actions

定义 Next.js 15 Server Actions 的标准模式,以安全可靠的方式处理数据变更与表单提交。此方法适用于各类表单提交与数据更新场景。

SKILL.md
--- frontmatter
name: managing-server-actions
description: Defines the standard pattern for Next.js 15 Server Actions to handle mutations securely. Use for form submissions and data updates.

Server Actions and Mutations

When to use this skill

  • When handling form submissions ('use server').
  • When mutating data in Appwrite from the frontend.
  • When you need to revalidate the cache after an update.

Workflow

  • Create actions in app/actions/ or directly in the component file.
  • Use 'use server' at the top of the function or file.
  • Implement try-catch for error handling.
  • Call revalidatePath() to refresh the UI.

Code Template (Next.js 15)

typescript
'use server'

import { revalidatePath } from 'next/cache';
import { BookingService } from '@/services/bookings';

export async function createBookingAction(formData: FormData) {
    try {
        const tourId = formData.get('tourId') as string;
        // Logic to create booking...
        await BookingService.create({ ... });
        
        revalidatePath('/dashboard/bookings');
        return { success: true };
    } catch (error) {
        return { success: false, error: 'Failed to create booking' };
    }
}

Instructions

  • Security: Always validate user session/permissions inside the Server Action.
  • Data Refresh: Use revalidatePath for the specific route or revalidateTag for broader invalidation.