Menu
CoddyTech

Usar datos validados

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

Un esquema puede devolver datos comprobados o información sobre un problema. safeParse devuelve un objeto cuyo campo success te indica cuál de las dos cosas ocurrió. Si la operación se realiza correctamente, data contiene el valor comprobado.

const result = Book.safeParse(body);
if (result.success) {
    return result.data;
}
return {error: 'Invalid book'};

Las reglas pueden transformar los valores además de rechazarlos. z.string().trim() elimina los espacios que los rodean. Guarda los datos comprobados para conservar ese cambio. Si guardaras el cuerpo original, volverían a aparecer los espacios no deseados. El esquema proporcionado ya tiene sus reglas.

trim() elimina los espacios que los rodean. El siguiente min(1) exige al menos un carácter, así que un título que solo contenga espacios no pasa la comprobación.

challenge icon

Desafío

Fácil

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

Usa el esquema Task proporcionado. Devuelve {"ok":true,"title":...} con el título recortado si la operación se realiza correctamente, o {"ok":false} si falla. Enviar {"title":" Read "} mediante POST a /result devuelve {"ok":true,"title":"Read"}. Un título con el valor 42 devuelve {"ok":false}.

Prueba también {"title":" "}: debe devolver {"ok":false}.

La GET /result inicial usa el ejemplo proporcionado {"title": " Read "}. 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().trim().min(1) });
export function exercise(body) {
    return { ok: true, title: body.title };
}

Todas las lecciones de API REST

Practica por tu cuenta: Playground de Express