egg:实现列表的模糊查询
Posted Ponnenult
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了egg:实现列表的模糊查询相关的知识,希望对你有一定的参考价值。
前言:
列表数据系列增删改查的查询实现
实现步骤:
1、路由配置:
/**
* 路由配置
* @param app
*/
module.exports = app => {
const { router, controller } = app;
//--------------------------------------------------
//用户信息
app.get('/getUserList', controller.new.user.getUserList);
}
2、controller / new / user.js 中 写入查询方法 getUserList
/**
* 用户信息路由
* @param app
* @returns {HomeController}
*/
const Controller = require('egg').Controller;
class NewsController extends Controller {
async getUserList() {
}
}
module.exports = NewsController;
3、安装配置mysql
4、模糊查询具体方法
async getUserList() {
//查询库里的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.age){
if(isMore){//true代表有多个参数
sql += "and age LIKE ?";//and是两个条件都必须满足,or是或的关系
}else{
sql += " WHERE age LIKE ?";
}
content.push( "%"+params.age+"%" )
isMore = true;
}
if(params.address){
if(isMore){//true代表有多个参数
sql += "and address LIKE ?";//and是两个条件都必须满足,or是或的关系
}else{
sql += " WHERE address LIKE ?";
}
content.push( "%"+params.address+"%" )
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
};
}
实现效果:
1、页面输入:http://127.0.0.1:7001/getUserList?page=1&pageSize=5
2、页面输入:http://127.0.0.1:7001/getUserList?name=t
3、页面输入:http://127.0.0.1:7001/getUserList
以上是关于egg:实现列表的模糊查询的主要内容,如果未能解决你的问题,请参考以下文章