더북(TheBook)

앞으로 총 세 개의 함수를 수정할 것입니다. 우선 포스트 목록을 조회하는 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이라는 함수도 새로 만들었습니다.

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