디버깅 다이어리

Node.js Joi 검증과증에서 오류

오류 발생 코드

const postPutSchema = Joi.object({
  title: Joi.string().min(1).max(100).allow(null, "").required(),
  postImg: Joi.string().allow(null).required(),
  content: Joi.string().max(1000),
});
let {
        title,
        postImg,
        content
      } = await postPutSchema.validateAsync(req.body);

위 코드에서 req.body는 postId 값도 전달한다. 왼쪽의 변수에 구조분해할당을 해주는 것은 문제가 없지만 문제는 joi 라이브러리로 검증하는 과정에서 스키마에 정의되지 않은 값을 검증하게 되면 오류가 난다.

 

 

 

해결

const postPutSchema = Joi.object({
  postId: Joi.number().required(),
  title: Joi.string().min(1).max(100).allow(null, "").required(),
  postImg: Joi.string().allow(null).required(),
  content: Joi.string().max(1000)
});

위와 같이 joi 스키마에 postId를 검증하는 코드까지 추가해주면 문제없이 동작한다.