后台项目 Express-Mysql-Vue3-TS-Pinia 删除数据

159 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情

删除数据

引言

通过之前一段时间 ExpressMysql 的学习

这里尝试来搭建一个 后台系统 来巩固下学习的技术。

删除数据

前面两部分,将 新增数据更新数据 接口及页面效果 都已经处理完毕,

接下来就是我们的 删除数据

删除数据更新数据 类似,都是需要知道 所要数据的 id

但是不同的是 更新数据 是放在 请求体 body 中, 而 删除数据 是放在 params

得符合我们的 resultful 规范😊

后端api处理

添加一个 删除数据 的 sql

位置在 controller\sys\sql.js 这个文件里

const deleteMenu = `delete from menu where id=?;`

删除的逻辑代码如下,主要是从 params 中来获取 id

req.params.id

这里也进行了 正则的一个校验,只有 正整数0 的值,才能通过我们的一个删除操作

const reg = /^[\d]+$/

const deleteMenu = (req, res, next) => {
  try {
    const id = req.params.id

    const reg = /^[\d]+$/

    if (reg.test(id)) {
      const sql = sqlAll.deleteMenu
      const sqlArr = [id]
      const callback = (error, results) => {
        if (error) {
          console.log('连接出错')
          return
        }
        const code = 200
        const data = {
          message: '删除成功!'
        }
        useResSend(res, code, data)
      }
      sqlConnect(sql, sqlArr, callback)
    } else {
      const code = 400
      const data = {
        message: '删除失败!'
      }
      useResSend(res, code, data)
    }
  } catch (err) {
    next(err)
  }
}

将删除的接口暴露出去,api/sys/delete-menu/:id

image.png

前端处理

先将前端 进行请求的接口 定义好

export const deleteMenu = (id: any) => DELETE(commonAPI + prefix + API.deleteMenu + `/${id}`)

在我们点击删除时,弹出 confirm 确认框,防止用户误点

当我们点击确认时,将会进行删除操作

image.png

image.png

const deleteFunc = (row) => {
  deleteMenu(row.id).then((res: any) => {
    ElMessage.success(res.message)
    state.editDialog = false
    getMenus()
  })
}

删除按钮 的 页面代码如下:

image.png

总结

通过 Express-Mysql-Vue3-TS-Pinia 做出一个 后台系统 项目

至此,我们的 删除数据 功能,添加完毕