Lección 10 de 20 · Lectura y práctica
Quiz: Server Actions y manejo de datos
Tipo de lección: QuizConcepto claveLas Server Actions en SvelteKit son funciones que se ejecutan exclusivamente en el servidor, permitiendo manejar operaciones sensibles como mutaciones de datos, autenticacion y acceso a bases de.
Del concepto a la práctica
Taller de esta lección
Este quiz comprueba el recorrido completo de una mutación: entrada, validación, persistencia y respuesta. Una respuesta correcta debe indicar qué parte ocurre en el servidor y qué dato puede mostrar la interfaz. No basta con afirmar que una acción es “segura”; hay que identificar qué regla evita el problema.
Ejemplo resuelto
Pregunta: el usuario envía un título vacío. Secuencia correcta: la acción lee el formulario, recorta el valor, rechaza la entrada, no escribe en almacenamiento y devuelve un error de validación. La interfaz muestra el error sin presentar una tarea creada.
Repetir un POST no lo hace idempotente por ser Server Action. En el fixture asigna clave solicitud r1 al título válido y guarda r1→t3 en el mismo registro/transacción de la creación: el segundo r1 devuelve t3 sin añadir otra fila. Para un fallo antes de confirmar debe haber cero registros; si el cliente pierde la respuesta tras confirmar, la clave permite recuperar el resultado. Una UI pending no garantiza deduplicación del servidor.
Pruébalo
Escribe qué ocurre antes de tocar la base de datos.
Indica qué respuesta representa un rechazo.
Decide qué debe suceder si la escritura falla.
Comprueba que un reintento no duplica una creación ya confirmada.
Comprueba tu resultado
Error frecuente: actualizar la lista local antes de saber si persistió; corrígelo esperando la respuesta o marcando el estado como pendiente.
Ejercicio: responde para título vacío, título válido y fallo de almacenamiento. Resultado esperado: no hay escritura en el primer caso, una creación confirmada en el segundo y un error recuperable en el tercero.

Mapa de prácticaEl servidor puede obtener datos y producir el HTML inicial. El navegador muestra el resultado y ejecuta las interacciones que necesitan estado local. Mantén las claves sensibles en el servidor y define qué parte se ejecuta en cada entorno.
Ver la infografía en tamaño completo ↗Tipo de lección: Quiz
Concepto clave
Las Server Actions en SvelteKit son funciones que se ejecutan exclusivamente en el servidor, permitiendo manejar operaciones sensibles como mutaciones de datos, autenticacion y acceso a bases de datos sin exponer logica critica al cliente. Piensalo como un camarero en un restaurante: el cliente (navegador) solo ve el menu y hace pedidos, pero toda la preparacion de la comida (procesamiento de datos) ocurre en la cocina (servidor).
Esto mejora la seguridad y el rendimiento, ya que el codigo del servidor nunca se envia al navegador. A diferencia de las API tradicionales, las Server Actions se integran directamente con los formularios y la navegacion de SvelteKit, proporcionando una experiencia de usuario fluida con validaciones en tiempo real y manejo de errores automatico.
Como funciona en la practica
Para implementar una Server Action, creas un archivo +page.server.js (o .ts) en tu ruta de SvelteKit. Dentro, defines acciones usando actions que reciben un objeto request y devuelven datos o errores. SvelteKit maneja automaticamente el envio de formularios y la actualizacion del estado.
Paso a paso: 1) El usuario llena un formulario en el frontend. 2) SvelteKit intercepta el envio y lo redirige a la Server Action correspondiente. 3) La accion valida y procesa los datos en el servidor. 4) Devuelve un resultado que actualiza la pagina sin recarga completa. Esto elimina la necesidad de escribir manualmente fetch o manejar estados de carga complejos.
Codigo en accion
Ejemplo basico: Crear una Server Action para agregar un usuario a una base de datos.
// En +page.server.js
export const actions = {
default: async ({ request }) => {
const data = await request.formData();
const name = data.get('name');
const email = data.get('email');
// Validacion
if (!name || !email) {
return { error: 'Nombre y email son requeridos' };
}
// Simulacion de insercion en BD
console.log(`Usuario agregado: ${name}, ${email}`);
return { success: true, message: 'Usuario creado exitosamente' };
}
};
En el frontend (+page.svelte):
Errores comunes
- Olvidar la validacion en el servidor: Confiar solo en la validacion del frontend expone vulnerabilidades. Siempre valida datos en la Server Action.
- No manejar errores graciosamente: Si la accion falla, devuelve mensajes claros en lugar de excepciones cripticas. Usa
return { error: 'Mensaje' }. - Exponer logica sensible: Asegurate de que codigo como claves de API o consultas SQL complejas este solo en archivos
.server. - Ignorar el rendimiento: Evita operaciones bloqueantes en acciones; usa async/await para tareas largas.
- Mal uso de
enhance: Sinuse:enhance, los formularios recargan la pagina, perdiendo la fluidez de SvelteKit.
Checklist de dominio
- Puedo crear una Server Action que procese datos de un formulario y devuelva resultados.
- Se validar entradas tanto en frontend como en servidor para seguridad.
- Implemento manejo de errores que muestra mensajes utiles al usuario.
- Uso
enhancepara mejorar formularios sin recargas de pagina. - Diferencio claramente entre codigo de cliente y servidor en mi proyecto.
- Optimizo acciones para no bloquear el hilo principal del servidor.
- Integro Server Actions con una base de datos real para operaciones CRUD.
Implementa un sistema de comentarios con Server Actions
En este ejercicio, construiras un sistema de comentarios para un blog usando SvelteKit y Server Actions. Sigue estos pasos:
- Crea un nuevo proyecto SvelteKit o usa uno existente.
- En la ruta
/blog, agrega un archivo+page.server.jscon una Server Action para manejar la creacion de comentarios. La accion debe validar que el comentario no este vacio y tenga menos de 500 caracteres. - En
+page.svelte, crea un formulario con campos para nombre (opcional), email (opcional), y comentario (requerido). Usause:enhancepara enviar el formulario sin recarga. - Al enviar, muestra un mensaje de exito o error basado en la respuesta de la Server Action.
- Agrega una lista que muestre los comentarios existentes (puedes simularlos con un array en memoria en el servidor).
- Prueba la validacion intentando enviar un comentario vacio o demasiado largo.
Pistas
- Usa
formData()en la Server Action para acceder a los datos del formulario. - Para simular almacenamiento, declara un array fuera de la accion en
+page.server.jsy actualizalo al agregar comentarios. - Recuerda resetear el formulario despues de un envio exitoso usando la funcion
enhance.
Evalua tu comprension
Completa el quiz interactivo de arriba para ganar XP.
Sigue con SvelteKit Full-Stack: Construye Aplicaciones Web Performantes con Server Actions
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.