방명록
- [Next.js] [Next.js] 인프런 강의 "Next.js 필수 개발 가이드 3시간 완성!" 정리(Zod를 이용한 유효성 검사)2024년 02월 13일 14시 03분 59초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
1. Zod 설치
Zod는 유효성 검사 라이브러리이다.
npm i zod
😉 공식 문서 : https://zod.dev/
2. 적용 방법
📌 스키마 작성
// src/app/api/users/schema.ts import { z } from "zod"; const schema = z.object({ name: z.string().min(3), email: z.string().email(), age: z.number(), }); export default schema;
📌 Zod 적용
// src/app/api/users/[id]/route.tsx import { NextRequest, NextResponse } from "next/server"; import schema from "../schema"; // (생략) export async function PUT( request: NextRequest, { params }: { params: { id: number } } ) { const body = await request.json(); /* zod schema 적용 parse method : 오류 발생시 오류 메시지, throw 함수 호출 후 서버 중단 safeParse method : 서버 중단되지 않음, 유효성 검증 결과 확인 가능 */ const validation = schema.safeParse(body); if (!validation.success) { return NextResponse.json(validation.error.errors, { status: 404 }); } // zod 사용 안했을 때 코드 // if (!body.name) { // return NextResponse.json({ error: "Name is required" }, { status: 404 }); // } if (params.id > 10) { return NextResponse.json({ error: "User Not Found" }, { status: 404 }); } return NextResponse.json({ id: 1, name: body.name }); } /* 윈도우 curl을 이용한 요청 테스트 name 속성에 빈값을 넣고 PUT 요청하였다. 요청 명령 : curl -d "{""name"":""""}" -H "Content-Type: application/json" -X PUT http://localhost:3000/api/users/1 요청 결과 : [{"code":"too_small","minimum":3,"type":"string","inclusive":true,"exact":false,"message":"String must contain at least 3 character(s)","path":["name"]},{"code":"invalid_type","expected":"string","received":"undefined","path":["email"],"message":"Required"},{"code":"invalid_type","expected":"number","received":"undefined","path":["age"],"message":"Required"}] */
728x90반응형'언어·프레임워크 > Next.js' 카테고리의 다른 글
[Next.js] 인프런 강의 "Next.js 필수 개발 가이드 3시간 완성!" 정리(인증, 인가를 편리하게 NextAuth.js) (0) 2024.02.16 [Next.js] 인프런 강의 "Next.js 필수 개발 가이드 3시간 완성!" 정리(Prisma) (0) 2024.02.13 [Next.js] 인프런 강의 "Next.js 필수 개발 가이드 3시간 완성!" 정리(API Endpoints) (0) 2024.02.13 [Next.js] 인프런 강의 "Next.js 필수 개발 가이드 3시간 완성!" 정리(컴포넌트 오류 처리) (0) 2024.02.11 [Next.js] 인프런 강의 "Next.js 필수 개발 가이드 3시간 완성!" 정리(not-found) (0) 2024.02.11 다음글이 없습니다.이전글이 없습니다.댓글