Использование проверенных данных
Часть раздела REST API путешествия по Node.js на Coddy. Урок 8 из 25.
Схема может вернуть проверенные данные или информацию о проблеме. safeParse возвращает объект, поле success которого показывает, что произошло. В случае успеха в data хранится проверенное значение.
const result = Book.safeParse(body);
if (result.success) {
return result.data;
}
return {error: 'Invalid book'};Правила могут как преобразовывать значения, так и отклонять их. z.string().trim() удаляет пробелы по краям. Сохраняй проверенные данные, чтобы сохранить это изменение. Если сохранить исходное тело запроса, нежелательные пробелы вернутся. В предоставленной схеме уже есть нужные правила.
trim() удаляет пробелы по краям. Следующее правило min(1) требует как минимум один символ, поэтому заголовок, состоящий только из пробелов, не пройдет проверку.
Задание
ЛегкоЭто небольшой практический проект. Его настройка уже предоставлена; редактируй только exercise.js.
Используй предоставленную схему Task. При успехе возвращай {"ok":true,"title":...} с заголовком без пробелов по краям, а при неудаче — {"ok":false}. Запрос POST {"title":" Read "} к /result возвращает {"ok":true,"title":"Read"}. Если заголовок — число 42, вернётся {"ok":false}.
Также попробуй {"title":" "}: он должен вернуть {"ok":false}.
Начальный GET /result использует предоставленный пример {"title": " Read "}. Используй POST /result с телом JSON, чтобы попробовать другие входные данные.
Попробуйте сами
import { z } from 'zod';
const Task = z.object({ title: z.string().trim().min(1) });
export function exercise(body) {
return { ok: true, title: body.title };
}
Все уроки раздела REST API
1Ресурсы и глаголы
Ресурсы и URLСоздание с помощью POST4Браузеры, версии и конфигурация
Что такое originРазрешение другого originCORSСтраница, вызывающая API2Валидация и ошибки
Проверка входных данныхПотренируйтесь самостоятельно: Песочница Express