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.
Desafío
FácilEste 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
1Recursos y verbos
Recursos y URLCrear con POST4Navegadores, versiones y configuración
Qué es un origenPermitir otro origenCORSUna página que llama a la API2Validación y errores
Validar la entradaPractica por tu cuenta: Playground de Express