携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第22天,点击查看活动详情
角色更新api
引言
通过之前一段时间 Express 和 Mysql 的学习
这里尝试来搭建一个 后台系统 来巩固下学习的技术。
角色更新api
在上一节,我们将 角色 和 菜单 的联动讲述清楚后
下面我们可以进行 角色 的 更新 操作
当然最主要的还是 角色 中 menuArrId 字段的处理,需要 后端 接收到数据时,来进行一定程度的转换操作
api接口
首先我们通过 Express 来将后端的 角色更新 接口 以及相关的 sql 语句,给定义和写好
-
更新
-
sql
更新的
sql语句,还是很容易就写出来的,就是根据id来找到具体的 角色,之后更新数据文件位置:
controller\sys\sql.js文件const editRole = `update role set name=?,description=?,menuArrId=? where id=?;` -
逻辑
由于 更新 操作,且根据 RESTFUL 的一个接口规范,我们的请求是 PUT 请求,所以我们后端再拿数据时,需要到放在请求体
req.body中的数据拿出来。由于我们的
menuArrId字段是string类型,但是 前端 要做到无感状态,所以传递过来的值是array类型所以我们在后端 进行 数据库保存的时候,需要进行
JSON.stringify的方式来进行转换文件位置:
controller\sys\index.js文件const editRole = (req, res, next) => { try { const { id, name, description, menuArrId } = req.body const sql = sqlAll.editRole const menuListString = JSON.stringify(menuArrId) const sqlArr = [name, description, menuListString, id] const callback = (error, results) => { if (error) { console.log('连接出错', error) return } const code = 200 const data = { message: '修改成功!' } useResSend(res, code, data) } sqlConnect(sql, sqlArr, callback) } catch (err) { next(err) } }
-
-
接口
逻辑 已经处理完成,我们这里将后端 角色更新 的 API 接口 进行定义
文件位置:
router\sys\index.js接口api路径:
api/sys/edit-roleconst Api = { editRole: '/edit-role', } router.put(Api.editRole, sysController.editRole)
总结
通过 Express-Mysql-Vue3-TS-Pinia 做出一个 后台系统 项目
完成了 角色更新 api 接口的开发