<aside>
목차
</aside>
<aside> 📖
Joi는 스키마(Schema) 기반 검증 라이브러리로 타입 세이프(Type Safe)하게 객체를 검증해 데이터 무결성을 유지한다.
</aside>
<aside> ❗
Joi 특성
<aside> ✏️
Joi.object({...}): Joi 객체 초기화.string(), .number()… : 타입 체크 (해당하는 타입이 아닐 시 오류 발생).required(): 필수 값 설정 (값이 없을 시 오류 발생).optional(): 옵션 값 설정
</aside>const schema = Joi.object({
name: Joi.string().required(),
email: Joi.string().email().required(),
age: Joi.number().optional(),
});
const data = {
name: 'John',
email: '[email protected]'
}
const { error, value } = schema.validate(data);
if (error) {
// 검증 실패, error 객체에 해당 정보가 담김
} else {
// 검증 성공
}
<aside> ✏️
.message() 후 해당하는 메세지 옵션을 넣으면 커스텀 메세지 설정이 가능하다.
</aside>
const schema = Joi.object({
name: Joi.string().required().messages({
'string.empty': 'Name cannot be empty',
}),
email: Joi.string().email().required().messages({
'string.email': 'Invalid email address',
}),
});
<aside> ✏️
Joi.extend(...)를 사용해 검증 메서드를 추가할 수 있다.