前言

列表数据系列增删改查的查询实现

一、实现步骤:

1、路由配置:

1
2
3
4
5
6
7
8
9
/**
* 路由配置
* @param app
*/
module.exports = app => {
const { router, controller } = app;
//用户信息
router.get('/getUser, controller.user.getUser);
}

2、controller / user.js`中 写入查询方法 getUser

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
* 用户信息路由
* @param app
* @returns {HomeController}
*/
const Controller = require('egg').Controller;
class UserController extends Controller {
async getUser() {
//查询库里的user表
let params = this.ctx.query //获取路径后面的参数
console.log('用户的参数:');
console.log(params);
let sql = 'select * from user'

let content = [];//参数
let isMore = false;//是否有多个查询参数
/**
* @模糊查询-量大的时候效率低
* select * from user where name like ? % 内容 %
* 在user表中全局查找name值 == 内容的
* % 内容 % 全局查找内容
* 内容 % 查找以 内容 开头的数据
* */
if(params.name){
sql += " where name like ?";
content.push( "%"+params.name+"%" );
isMore = true;
}
if(params.phone){
if(isMore){//true代表有多个参数
sql += "and phone LIKE ?";//and是两个条件都必须满足,or是或的关系
}else{
sql += " WHERE phone LIKE ?";
}
content.push( "%"+params.phone+"%" )
}

//开启分页
if(params.page || params.pageSize){
let current = params.page;//当前页码
let pageSize = params.pageSize;//一页展示多少条数据
sql += " limit ?,?";
content.push((current-1)*pageSize,parseInt(pageSize));
}


let userList= await this.app.mysql.query(
sql,content
);
this.ctx.body = {
code:200,
masg:'success',
data:userList
};
}
}

module.exports = UserController;

二、接口如图所示

1、页面输入:http://127.0.0.1:7001/getUser?page=1&pageSize=4

在这里插入图片描述

2、页面输入:http://127.0.0.1:7001/getUser?name=张三

在这里插入图片描述

3、页面输入:http://127.0.0.1:7001/getUser

在这里插入图片描述