그다음에는 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); } };