Menu
CoddyTech

검증된 데이터 사용하기

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

스키마는 검증된 데이터나 문제에 관한 정보를 반환할 수 있습니다. safeParse는 어떤 결과가 발생했는지 알려 주는 success 필드가 있는 객체를 반환합니다. 성공하면 data에 검증된 값이 들어 있습니다.

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

규칙은 값을 거부할 뿐 아니라 변환할 수도 있습니다. z.string().trim()은 앞뒤 공백을 제거합니다. 이 변경 사항을 유지하려면 검증된 데이터를 저장하세요. 원래 body를 저장하면 원치 않는 공백이 다시 들어갑니다. 제공된 스키마에는 이미 규칙이 있습니다.

trim()은 앞뒤 공백을 제거합니다. 다음 min(1)은 최소 한 글자를 요구하므로 공백만 있는 제목은 유효성 검사에 실패합니다.

challenge icon

챌린지

쉬움

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

제공된 Task 스키마를 사용하세요. 성공하면 제목의 앞뒤 공백을 제거한 값을 포함해 {"ok":true,"title":...}를 반환하고, 실패하면 {"ok":false}를 반환하세요. {"title":" Read "}를 /result에 POST하면 {"ok":true,"title":"Read"}가 반환됩니다. 제목이 42이면 {"ok":false}가 반환됩니다.

{"title":" "}도 시도해 보세요. 이 경우 {"ok":false}를 반환해야 합니다.

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

직접 해보기

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의 모든 레슨

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