더북(TheBook)

22.10.2 포스트를 역순으로 불러오기

페이지 기능을 구현하기에 앞서 포스트를 역순으로 불러오는 방법을 알아보겠습니다. 현재 list API에서는 포스트가 작성된 순서대로 나열되는데요. 블로그에 방문한 사람에게 가장 최근 작성된 포스트를 먼저 보여 주는 것이 좋겠지요?

이를 구현하려면 list API에서 exec()를 하기 전에 sort() 구문을 넣으면 됩니다.

sort 함수의 파라미터는 { key: 1 } 형식으로 넣는데요. key는 정렬(sorting)할 필드를 설정하는 부분이며, 오른쪽 값을 1로 설정하면 오름차순으로, -1로 설정하면 내림차순으로 정렬합니다. 우리는 _id를 내림차순으로 정렬하고 싶으니 { _id: -1 }로 설정합니다.

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

export const list = async ctx => {
  try {
    const posts = await Post.find()
      .sort({ _id: -1 })
      .exec();
    ctx.body = posts;
  } catch (e) {
    ctx.throw(500, e);
  }
};

 

다시 Postman으로 list API를 호출해 보세요. 가장 마지막으로 등록된 포스트가 맨 위에 나타났나요?

GET http://localhost:4000/api/posts
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.