iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
Software Development

Node.js隨手札記 想到什麼就說什麼的系列 第 28

第二十八天 node.js x Sequelize x ORM 第五站

  • 分享至 

  • xImage
  •  

前面我們把 創建方法跟修改方法都搞出來了(雖然超陽春XD)
今天一口氣來完成

  1. 取得所有資料
  2. 取得單筆資料
  3. 刪除單筆資料

首先是
取得所有資料
有了一點經驗之後就覺得比較快一點了

設定route

app.get("/api/data", dataController.allData);

Controller

async function allData(req, res) {
  try {
    const getAllData = await User.findAll(); //撈出所有使用者 ,我們常用排序 可以改成下面這樣
    //const getAllData = await User.findAll({order: [['id', 'DESC']]});
    res.status(200).json(getAllData);
  } catch (error) {
    console.error("失敗:", error);
    res.status(500).send("查找失敗");
  }
}

這樣去打就可以取得index了!

接下來是
取得單筆資料
設定route

app.get("/api/data/:id", dataController.showData);

Controller

async function showData(req, res) {
  try {
    const getReq = req.params.id;
    const getShowData = await User.findOne({ where: { id: getReq } });

    res.status(200).json(getShowData);
  } catch (error) {
    console.error("失敗:", error);
    res.status(500).send("獲取使用者資訊失敗");
  }
}

module.exports = {
  createData,
  updateData,
  allData,
  showData,
};

接著去打你資料庫有id資料就可以囉

最後是
刪除某一筆資料
設定route

app.delete("/api/data/:id", dataController.deleteData);
async function deleteData(req, res) {
  try {
    const idToDelete = req.params.id; 

    const deletedRowCount = await User.destroy({ where: { id: idToDelete } });

    res.status(200).send("刪除成功");
  } catch (error) {
    console.error("失敗:", error);
    res.status(500).send("刪除失敗");
  }
}

module.exports = {
  createData,
  updateData,
  allData,
  showData,
  deleteData,
};

大致上就是這樣可以完成一個簡單的CRUD拉~

其實有很多東西可以再增加或者修改~但這邊還是想說走一個初學路線,而且我文件也還沒看完就是了XDD

希望這樣大家有感受到ORM的好處哦~~


上一篇
第二十七天 node.js x Sequelize x ORM 第四站
下一篇
第二十九天 node.js x Sequelize x ORM 第六站
系列文
Node.js隨手札記 想到什麼就說什麼的30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言