Menu
CoddyTech

유효성 검사 오류 읽기

Coddy Node.js 여정의 REST API 섹션에 포함된 레슨. 25개 중 10번째.

클라이언트는 어떤 입력을 수정해야 하는지 알아야 합니다. safeParse가 실패하면 result.error에 문제가 설명되어 있습니다. z.flattenError는 문제를 두 그룹으로 정리합니다. 이름이 지정된 필드의 fieldErrors와 객체 전체에 대한 formErrors입니다.

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

제목의 유형이 잘못된 경우 fields에는 title이 포함됩니다. Object.keys는 속성 이름의 배열을 반환합니다. 실패 분기에서만 flattenError를 호출하세요. 성공한 경우에는 평탄화할 오류가 없습니다. 이 스키마는 나열된 필드를 검사합니다. 엄격한 객체 수준 오류는 zod를 사용한 스키마에서 소개합니다.

Object.keys(fieldErrors)는 필드 이름을 반환합니다. sort() 메서드는 해당 이름을 알파벳순으로 정렬합니다.

challenge icon

챌린지

쉬움

이것은 간단한 연습 프로젝트입니다. 설정은 제공되어 있으니 exercise.js만 수정하세요.

성공하면 {"fields":[]}를 반환하세요. 실패하면 fieldErrors의 이름을 알파벳순으로 정렬해 반환하세요. POST {"title":42,"done":"yes"}를 /result에 보내면 {"fields":["done","title"]}가 반환됩니다. 유효한 제목과 불리언 값을 사용하면 빈 목록이 반환됩니다.

초기 GET /result는 제공된 예시 {"title": 42, "done": "yes"}를 사용합니다. 다른 입력을 시도하려면 JSON 본문과 함께 POST /result를 사용하세요.

직접 해보기

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

REST API의 모든 레슨

직접 연습해 보세요: Express 플레이그라운드