검증된 데이터 사용하기
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)은 최소 한 글자를 요구하므로 공백만 있는 제목은 유효성 검사에 실패합니다.
챌린지
쉬움이것은 간단한 연습 프로젝트입니다. 설정은 제공되어 있으니 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 플레이그라운드