当前位置:网站首页 > 数据科学与大数据 > 正文

Node学习(九)05-管理系统之英雄列表分页——分页的sql查询语句 & 服务端get接口写法、ajax请求数据之get请求写法 & Math.ceil()函数-返回大于或等于一个给定数字的最小整数

Node学习(九)05-管理系统之英雄列表分页——分页的sql查询语句 & 服务端get接口写法、ajax请求数据之get请求写法 & Math.ceil()函数-返回大于或等于一个给定数字的最小整数

七、分页

7.1 分页原理

必须的两个条件:

  • 分页的页码(当前是第几页) — page
  • 每页显示多少条 — pageNum

查询的SQL为:

-- 第一页 -- select * from heroes limit 0, 5 -- 第二页 -- select * from heroes limit 5, 5 -- 第三页 -- select * from heroes limit 10, 5 -- 第page页 select * from heroes limit (page-1) * pageNum, pageNum 

分页效果

在这里插入图片描述

7.2 修改getHeroes接口,将SQL换成通用的sql

app.js

// 1. 取出所有的英雄 app.get('/getHeroes', (req, res) => { 
    let page = 1; // 当前的页码 let pageNum = 5; // 每页显示多少条 // let sql = `select * from heroes limit ${(page-1) * pageNum}, ${pageNum}`; let sql = 'select * from heroes limit ' + (page-1) * pageNum + ',' + pageNum; db(sql, null, (err, result) => { 
    if (err) throw err; // 接口响应,响应查询到的结果 res.send(result); }); }); 

执行 git add .git commit -m '修改getHeroes接口,使用通用的SQL'

7.3 基本实现分页

分页请求

在这里插入图片描述

前端index.html中,使用分页插件 twbs-pagination 。

做法:

在这里插入图片描述

修改前端代码,基本实现分页:

  1. 向接口 getHeroes 发送请求的时候,要传递page参数,默认是1即可

在这里插入图片描述

  1. 封装向接口 getHeroes 发送请求的代码为loadData函数,并且先调用一次

在这里插入图片描述

  1. 将分页的代码封装成page函数,当点击页码的时候,修改params参数,并再次调用loadData

在这里插入图片描述

  1. 在loadData中,当处理完当前页的数据之后,调用一次page
  2. 为了不重复调用page函数,所以加入flag开关控制

在这里插入图片描述

到目前为止,无论点击哪个页码,服务器总是返回第1页的数据,是因为服务器接口,并没有接受page参数,所以修改getHeroes接口:

在这里插入图片描述

执行 git add .git commit -m '基本实现了分页'

7.4 修改getHeroes接口,获取总页数

查询总页数的SQL: select count(*) c from heroes [where ...]

修改接口:

在这里插入图片描述

注:

Math.ceil() // 函数返回大于或等于一个给定数字的最小整数。 Math.ceil(null)// 返回整数 0  Math.ceil(0.95) // 1 Math.ceil(4) // 4 Math.ceil(7.004) // 8 Math.ceil(-7.004) // -7 // 如果是负数的话,那么获得整数就是舍去掉小数部分的整数了 

1

在这里插入图片描述

2

在这里插入图片描述

前端index.html中,修改代码:

在这里插入图片描述
执行 git add .git commit -m '完成分页,加入总页数'

7.5 模糊搜索

前端点击 “查找” 的时候,获取输入框搜索的关键字。然后将它发送给服务器:

<script> / 模糊搜索 $('.btn-default').click(function (e) { 
    e.preventDefault(); // 获取到关键字。并使用trim方法去掉两边的空格 var serach = $('#search').val().trim(); flag = true; params.page = 1; params.keywords = serach; loadData(); }); </script>在这里插入代码片 

搜索的时候,肯定先显示搜索到的第一页,所以设置page=1。并且要设置上搜索的关键字。设置完毕,从新发送请求,即调用loadData();

服务端,修改查询的SQL即可:

在这里插入图片描述

执行 git add .git commit -m '模糊搜索,差一个分页页码'

到此这篇Node学习(九)05-管理系统之英雄列表分页——分页的sql查询语句 & 服务端get接口写法、ajax请求数据之get请求写法 & Math.ceil()函数-返回大于或等于一个给定数字的最小整数的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Node学习(九)062-管理系统之登录和注册-使用验证码——验证码插件-svg-captcha & 前端生成动态验证码图片 & 服务端验证验证码数据2024-11-30 11:54:05
  • NoSQL数据库(一)——redis的发展和特点 & Redis安装和配置文件redis.conf & redis命令行客户端2024-11-30 11:54:05
  • NoSQL数据库(二)01-Redis数据类型——字符串类型之赋值与取值、递增数字、增加指定浮点数、向尾部追加值、获取字符串长度、设置键值 & 散列类型命令之赋值与取值、获取键值、删除字段、增加数字2024-11-30 11:54:05
  • NoSQL数据库(二)02-Redis数据类型——实践-散列类型命令之散列存储逻辑、获取id、修改缩略名2024-11-30 11:54:05
  • NoSQL数据库(二)03-Redis数据类型——列表类型之介绍、命令-向列表两端增加元素、从列表两端弹出元素、获取列表中元素的个数、删除列表中指定的值2024-11-30 11:54:05
  • Node学习(九)04-管理系统之删除英雄——ajax请求数据之get请求写法完成删除、remove()移除DOM元素 & 服务端之完成删除的接口-sql中的delete语句2024-11-30 11:54:05
  • Node学习(九)032-管理系统之修改英雄——ajax请求数据之post请求写法-$.ajax() 方法 & 图片预览之URL.createObjectURL(文件对象) & 服务端post接口写法2024-11-30 11:54:05
  • Node学习(九)031-管理系统之修改英雄——服务端get接口写法之req.query可以获取到url上所有的参数 & ajax请求数据之get请求写法2024-11-30 11:54:05
  • Node学习(九)021-管理系统之添加英雄——完成本地图片预览之生成临时url-URL.createObjectURL(文件对象)& FormData收集表单各项数据之ajax请求写法-post请求2024-11-30 11:54:05
  • Node学习(七)03-mysql基本用法——update修改语句-数据修改需两个占位符& delete删除语句-结果是个对象& multipleStatements为true时可一次性执行多条SQL2024-11-30 11:54:05
  • 全屏图片