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