CRUD 를 만들 것이다.

01. READ

고양이 전체 데이터 조회

//* READ 고양이 전체 데이터 다 조회
app.get('/cats', (req, res)=> {
  try{
    const cats = Cat;
    res.status(200).send({
      success:true,
      data: {
        cats,
      },
    });
  }
  catch(error){
    res.status(400).send({
      success: false,
      error:error.message,
    });
  }
})

위와 같이 작성한다.

특이한 점이라면

  • res.status를 사용하여 상태코드를 넘길 수 있다는 것
  • 에러 핸들링을 위한 catch의 사용

고양이 특정 데이터 조회

동적 라우팅

//* READ 특정 고양이 데이터 조회
app.get('/cats/:id', (req, res) => {
  try {
    const params = req.params;

    console.log(params);

    const cats = Cat.find(cat => {
      return cat.id == params.id;
    });
    res.status(200).send({
      success: true,
      data: {
        cats,
      },
    });
  } catch (error) {
    res.status(400).send({
      success: false,
      error: error.message,
    });
  }
});

동적 라우팅을 위해 : 를 사용한다.

/cats/:id 와 같이 사용하면

params.id 로 접근을 할 수 있고

해당 데이터에 맞게 가져와서 전달해주면 된다.

02. CREATE

회원가입, 새로운 고양이 추가 API

추가 될 데이터를 지정해주는 것이 필요하다.

  {
    "name" : "yellow",
    "age": 3,
    "species": "Sharm",
    "isCute": true,
    "friends": []
  }

근데 위와 같이 보낸 후

//* CREATE 새로운 고양이 추가 API
app.post('/cats', (req, res) => {
  try {
    const data = req.body;
    console.log(data);
    res.status(200).send({
      success: true,
      data: {},
    });
  } catch (error) {
    res.status(400).send({
      success: false,
      error: error.message,
    });
  }
});

위와 같이 요청을 하면 data를 못가져오는 것을 보게 된다.

이는 Express 에서 json을 읽을 수 있도록 parse 할 수 있도록 middleware를 추가해줘야 한다.

//* json middleware
app.use(express.json());

위와 같이 사용하면 된다.