最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

世界观点:express实现批量删除和分页

来源:博客园


(相关资料图)

后端代码批量删除

// 批量删除router.get("/manyDel", function (req, res) {  let { ids } = req.query  if (ids&&ids.length>0) { //如果用户的值为空,不执行下面的    const sqlStr = `delete from account where id in (${ids})`    // 打印出你的sql语句,如果报错了,可以把下面的语句放在mysql中去执行一下,目的检测sql语句是否正确    console.log("sqlStr",sqlStr)    connection.query(sqlStr, (err, data) => {      if (err) {        res.send({          code: 1,          msg:"批量删除失败"        });        throw err       } else {        //这个判断是否删除成功,因为有可能没有这个id的        if (data.affectedRows>0) {          res.send({            code: 0,            msg:"批量删除成功"          });        } else {          res.send({            code: 1,            msg:"批量删除失败"          });        }      }    })  } else {    res.send({      code: 1,      msg:"请选择"    });  }})

前端批量删除代码

sendApi5() {  axios.get("http://127.0.0.1:666/accounts/manyDel", { params: { ids: [] } }).then(function (response) {      console.log(response);  }).catch(function (error) {      console.log(error);  });}

后端分页查询

// 分页查询router.get("/fenye", function (req, res) {  let { pageSize, currentPage } = req.query;  pageSize = pageSize ? pageSize : 5;  currentPage = currentPage ? currentPage : 1;  let sqlStr = `select * from account order by ctime desc`;  connection.query(sqlStr, (err, data) => {    if (err) {      res.send({        code: 1,        msg:"分页查询失败"      });      throw err    } else {      let total = data.length;      // 分页条件      let n = (currentPage - 1) * pageSize      // 然后在拼接Sql语句, 逃过多少条,输出多少条,注意这里前面有一个空格,否者会报错SQL;       // 在Sql报错的时候,你可以看控制台的报错信息      sqlStr += ` limit ${n}, ${pageSize}`;            // 在输出条件后的Sql语句      connection.query(sqlStr, (e, d) =>{        if (e) {          res.send({            code: 1,            msg:"分页查询失败",            total:0          });          throw e        } else {           res.send({            code: 0,            data:d,            total:total          });        }      })    }  })})

前端分页代码

sendApi6() {  axios.get("http://127.0.0.1:666/accounts/fenye", {      params: {           pageSize:5, currentPage:1  } }).then(function (response) {      console.log(response);  }).catch(function (error) {      console.log(error);  });}

我发现的问题

1. 如何高效去处判断前端是否把必须传递的参数传递过来了。现在写的代码中,都没有去判断参数的正确性,直接进行执行了SQL语句,这样是不正确的。2.返回体应该进行统一的封装,而不是在请求的时候像现在这样去写重复代码。3.我现在在执行 select * from account 这样的SQL语句其实性能值非常低的,怎么去优化。

关键词: 不正确的 参数传递 是否正确