코드를 중복해 넣지 않고, 한 번만 구현한 다음 여러 라우트에 쉽게 적용하는 방법이 있습니다. 바로 미들웨어를 만드는 것입니다. posts.ctrl.js의 코드 상단에 다음 미들웨어를 작성해 주세요.

    src/api/posts/posts.ctrl.js

    import Post from '../../models/post';
    import mongoose from 'mongoose';
    
    const { ObjectId } = mongoose.Types;
    
    export const checkObjectId = (ctx, next) => {
      const { id } = ctx.params;
      if (!ObjectId.isValid(id)) {
        ctx.status = 400; // Bad Request
        return;
      }
      return next();
    };
    (...)

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