Menu
CoddyTech

Leer errores de validación

Parte de la sección API REST del Journey de Node.js de Coddy. Lección 10 de 25.

Un cliente necesita saber qué entrada debe corregir. Cuando safeParse falla, result.error describe los problemas. z.flattenError los organiza en dos grupos: fieldErrors para los campos con nombre y formErrors para el objeto en su conjunto.

const issues = z.flattenError(result.error);
const fields = Object.keys(issues.fieldErrors);

Si el tipo del título es incorrecto, fields contiene title. Object.keys devuelve una matriz con los nombres de las propiedades. Llama a flattenError solo en la rama de fallo. Si la operación tiene éxito, no hay ningún error que aplanar. Este esquema comprueba los campos que enumera. Los errores estrictos a nivel de objeto se presentan en Esquemas con zod.

Object.keys(fieldErrors) devuelve los nombres de los campos. Su método sort() ordena esos nombres alfabéticamente.

challenge icon

Desafío

Fácil

Este es un pequeño proyecto de práctica. Se proporciona la configuración; edita solo exercise.js.

Si todo sale bien, devuelve {"fields":[]}. Si no, devuelve los nombres de fieldErrors ordenados alfabéticamente. Enviar {"title":42,"done":"yes"} mediante POST a /result devuelve {"fields":["done","title"]}. Un título válido y un valor booleano dan como resultado una lista vacía.

La GET /result inicial usa el ejemplo proporcionado {"title": 42, "done": "yes"}. Usa POST /result con un cuerpo JSON para probar otras entradas.

Pruébalo tú mismo

import { z } from 'zod';
const Task = z.object({ title: z.string(), done: z.boolean() });
export function exercise(body) {
    return { fields: [] };
}

Todas las lecciones de API REST

Practica por tu cuenta: Playground de Express