상태코드 204

status(204)는 컨텐트로 아무것도 보내지 못한다.

exports.deleteNotice = async (req, res) => {
  try {
    console.log(req.query.notice_id);
    if (req.query.notice_id) {
      const result = await Notice.deleteOne({ _id: req.query.notice_id });
      console.log(result);
      console.log(typeof result.deletedCount);
      // 공지사항이 존재하는 경우
      // { acknowledged: true, deletedCount: 1 }
      // 공지사항이 존재하지 않는 경우
      //{ acknowledged: true, deletedCount: 0 }

      if (result.deletedCount === 1) {
        res.status(200).send({ message: '공지사항이 성공적으로 삭제되었습니다!' });
      } else {
        res.status(400).send({ message: '존재하지 않는 공지사항입니다.' });
      }
    } else {
      res.status(400).send({ message: '공지사항 ID가 필요합니다.' });
    }
  } catch (err) {
    console.log(err);
    res.status(500).json('SERVER ERROR');
  }
};

여기에서 삭제에 성공했을 때 fix 전의 코드는

res.status(204).send({ message: '공지사항이 성공적으로 삭제되었습니다!' });

였다. 그런데 status(204)는 no content로 body에 아무것도 실어서 보내지 못하기 때문에 message가 전달되지 않는 문제가 발생했었다.

그래서 status(200)으로 바꾸어줌!

HTTP 상태 코드 - HTTP | MDN


STOPWATCH