앞으로 총 세 개의 함수를 수정할 것입니다. 우선 포스트 목록을 조회하는 list 함수를 다음과 같이 수정해 보세요.

    src/api/posts/posts.ctrl.js - list

    // html 없애고 내용이 너무 길면 200자로 제한하는 함수
    const removeHtmlAndShorten = body => {
      const filtered = sanitizeHtml(body, {
        allowedTags: [],
      });
      return filtered.length < 200 ? filtered : `${filtered.slice(0, 200)}...`;
    };
    
    /*
      GET /api/posts?username=&tag=&page=
    */
    export const list = async ctx => {
      (...)
        ctx.body = posts.map(post => ({
          ...post,
          body: removeHtmlAndShorten(post.body),
        }));
      } catch (e) {
        ctx.throw(500, e);
      }
    };

     

    기존에는 문자열 길이만 제한했는데, 이번에는 HTML을 제거하고 문자열 길이를 200자로 제한했습니다. 이 작업을 위해 removeHtmlAndShorten이라는 함수도 새로 만들었습니다.

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