에러처리기록2 refine 메서드로 검증하는 zod 스키마와 extend 동시 사용 불가 이슈 zod의 refine 메서드 zod의 refine 메서드는 특정 input 요소의 단순한 검증(ex. 문자열, 숫자, 정규식)이 아닌 커스텀 검증을 사용할 때 사용한다. 따라서, 회원가입에서의 비밀번호와 비밀번호 확인 두 가지의 값이 서로 같은지 다른지, 사용자가 입력한 값이 특정 로직을 거쳐서 해당되는 값이 나와야하는지 등의 상황에서 자주 쓰이게 된다.// 예시 1const myString = z.string().refine((val) => val.length data.password === data.passwordConfirm, { message: "비밀번호가 일치하지 않습니다.", path: ["userPassword2"], }) 스키마 확장(extend) 사용 extend 메서드.. 2024. 12. 2. UND_ERR_REQ_CONTENT_LENGTH_MISMATCH 에러 UND_ERR_REQ_CONTENT_LENGTH_MISMATCH 에러 이번 심화프로젝트를 시작하면서 회원가입 로직을 만들고 있는데, 처음 보는 에러가 계속 발생해서 당황했다. 우선 현재 회원가입 로직이 하나의 로직으로 두 개의 분기를 나눠서 처리해야 해서 zod 스키마를 base 스키마를 바탕으로 하는 A 스키마, B 스키마로 나누었다. 두 개의 분기는 URL params로 경로를 분산했고, 분기처리는 성공했는데 문제는 그 다음이었다. 서버에는 하나의 스키마로 된 api로 요청하도록 되어있는데, 각 분기별 필수값이 달라서 요청할 때 계속 특정 값들이 zod safeParse 검증을 통과하여 전달될 때 제외되는 현상이 있었다. 그래서 UND_ERR_REQ_CONTENT_LENGTH_MISMATCH 에러로 .. 2024. 11. 24. 이전 1 다음