그다음에는 write 함수에서 Joi를 사용하여 요청 내용을 검증해 보세요.

    src/api/posts/posts.ctrl.js

    import Post from '../../models/post';
    import mongoose from 'mongoose';
    import Joi from 'joi';
    
    (...)
    export const write = async ctx => {
      const schema = Joi.object().keys({
        // 객체가 다음 필드를 가지고 있음을 검증
        title: Joi.string().required(), // required() 있으면 필수 항목
        body: Joi.string().required(),
        tags: Joi.array()
          .items(Joi.string())
          .required(), // 문자열로 이루어진 배열
      });
    
      // 검증하고 나서 검증 실패인 경우 에러 처리
      const result = Joi.validate(ctx.request.body, schema);
      if (result.error) {
        ctx.status = 400; // Bad Request
        ctx.body = result.error;
        return;
      }
    
      const { title, body, tags } = ctx.request.body;
      const post = new Post({
        title,
        body,
        tags,
      });
      try {
        await post.save();
        ctx.body = post;
      } catch (e) {
        ctx.throw(500, e);
      }
    };

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.