<aside>

목차

</aside>

Joi


<aside> 📖

Joi스키마(Schema) 기반 검증 라이브러리로 타입 세이프(Type Safe)하게 객체를 검증데이터 무결성을 유지한다.

</aside>

<aside> ❗

Joi 특성

사용 방법

<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',
	}),
});

커스텀 Validator

<aside> ✏️

Joi.extend(...)를 사용해 검증 메서드를 추가할 수 있다.