더북(TheBook)

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

 

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

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

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

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

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

 

다시 list API를 호출해 보세요. 가장 마지막으로 등록한 것이 맨 위에 있나요?

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