영광의 시대!/2022 개발자의 품격 부트캠프 1기

[개발자의품격][부트캠프][1기][31차시] Node.js #3 | 라우팅(PUT, DELETE)

DandyNow 2022. 4. 8. 14:38
728x90
반응형

| 라우팅

PUT

DB 데이터를 수정하는 기능이다. mysql.query에서 파라미터를 배열로 받는 점을 유념하자!

// 11_app_mysql.js
...
app.put("/api/product/category/:product_category_id", async (req, res) => {
  const { product_category_id } = req.params;
  const result = await mysql.query("categoryUpdate", [
    req.body.param,
    product_category_id,
  ]);
  res.send(result);
});

 

mysql.query의 배열 파라미터는 아래 코드의 커리문 내 '?'와 각각 대응한다.

// mysql/sql.js
module.exports = {
  ...
  categoryUpdate: `update product_category set ? where product_category_id=?`
};

 

[그림 1-1] Postman에서 PUT

 

[그림 1-2] 수정된 DB

 

DELETE

// 11_app_mysql.js
...
app.delete("/api/product/category/:product_category_id", async (req, res) => {
  const { product_category_id } = req.params;
  const result = await mysql.query("categoryDelete", product_category_id);
  res.send(result);
});

 

// mysql/sql.js
module.exports = {
  ...
  categoryDelete: `delete from product_category where product_category_id=?`,
};

 

[그림 2] Postman에서 DELETE

 

※ ORM(Object Relational Mapping)인 Sequelize를 이용하여 데이터베이스 데이터를 핸들링할 수 있지만 추천하지 않는다. 쿼리를 사용하는 연습을 해야 하고, 복잡한 데이터베이스 조작 시에는 오히려 비효율적이기 때문이다.

728x90
반응형