Menu
CoddyTech

Lendo erros de validação

Parte da seção APIs REST do Journey de Node.js da Coddy. Lição 10 de 25.

Um cliente precisa saber qual entrada corrigir. Quando safeParse falha, result.error descreve os problemas. z.flattenError os organiza em dois grupos: fieldErrors para campos nomeados e formErrors para o objeto como um todo.

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

Para um tipo de título incorreto, fields contém title. Object.keys retorna um array dos nomes das propriedades. Chame flattenError apenas no ramo de falha. Em caso de sucesso, não há erro para achatar. Este esquema verifica os campos listados. Erros estritos no nível do objeto são apresentados em Esquemas com zod.

Object.keys(fieldErrors) fornece os nomes dos campos. O método sort() coloca esses nomes em ordem alfabética.

challenge icon

Desafio

Fácil

Este é um pequeno projeto de prática. A configuração já foi fornecida; edite apenas exercise.js.

Em caso de sucesso, retorne {"fields":[]}. Em caso de falha, retorne os nomes em fieldErrors, em ordem alfabética. Envie {"title":42,"done":"yes"} usando POST para /result para obter {"fields":["done","title"]}. Um título válido e um booleano resultam em uma lista vazia.

A GET /result inicial usa o exemplo fornecido {"title": 42, "done": "yes"}. Use POST /result com um corpo JSON para testar outras entradas.

Experimente você mesmo

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

Todas as lições de APIs REST

Pratique por conta própria: Playground de Express