더북(TheBook)

22.8.2 데이터 수정

마지막으로 update 함수를 구현해 보겠습니다. 데이터를 업데이트할 때는 findByIdAndUpdate() 함수를 사용합니다. 이 함수를 사용할 때는 세 가지 파라미터를 넣어 주어야 합니다. 첫 번째 파라미터는 id, 두 번째 파라미터는 업데이트 내용, 세 번째 파라미터는 업데이트의 옵션입니다.

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

/*
  PATCH /api/posts/:id
  {
    title: '수정',
    body: '수정 내용',
    tags: ['수정', '태그']
  }
*/
export const update = async ctx => {
  const { id } = ctx.params;
  try {
    const post = await Post.findByIdAndUpdate(id, ctx.request.body, {
      new: true, //  값을 설정하면 업데이트된 데이터를 반환합니다.
      // false 때는 업데이트되기 전의 데이터를 반환합니다.
    }).exec();
    if (!post) {
      ctx.status = 404;
      return;
    }
    ctx.body = post;
  } catch (e) {
    ctx.throw(500, e);
  }
};

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