유효성검사에서 필수값으로 설정해놨는데도
Cannot read property 'fatal' of undefined 에러가 발생했다.
유효성에러가 뜨는 게 정상인데, 저런 에러는 어디서 뭐가 없다는 건지 신속하게 파악하기 어렵다.
const validator = {
schema: schema.create({
type: schema.string(),
name: schema.string({}, [
rules.unique({
table: User.table,
column: 'name',
where: { deleted_at: null, type: request.input('type') // 이 부분이 문제였다.
}),
]),
}),
}
type이 들어오지 않으면 필수값이 들어오지 않았다고 에러가 떠야 하는데,
name 확인할 때, DB를 확인하는 부분이 먼저 작동해서
where: { deleted_at: null, type: null } 로 들어가는 것이었다.
유효성검사 코드를 한 번 더 추가했다.
if (!(request.input('type'))) {
throw new ValidationFailedException()
}
만약에 type이 들어오지 않으면 에러가 발생했던 코드까지 가지도 않고, 바로 위 코드에서 걸러진다.