mysql给前端返回分页数据_Mysql 数据分页处理(Node.js的实现)

最近做项目的时候,有一个接口需要分页处理,就是每页返回20条数据:比如:https://api.cn?pagg=1

这里的page就是需要获取的哪一页数据的请求参数,返回的json,当然就是返回给前台需要的数据。

实例

PC端

0818b9ca8b590ca3270a3433284dd417.png

这个做PC端是比较常见的,这个其实需要后端返回一个必须要的数据,就是总的条数,至于每页多少条这个是需求定的,当然还有的就是当前的页数和当前页数的数据。

比如下面的数据:

{

"total": 1836, // 总的条数

"ret_code": 0,

"totalPages": 92, // 总页数

"currentPage": 1 // 当前页数

"bookList": [ // 当前页 的数据

{

"summary": "",

"id": 3,

"bookclass": 1,

"author": "张峰",

"count": "0",

"name": "从宝宝排泄物看",

"fcount": 0,<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现分页,需要以下步骤: 1. 在前端页面中,定义一个分页器,用于显示当前页码、页数等信息,并提供翻页功能; 2. 在后端代码中,通过 SQL 语句查询数据库中的数据,并根据分页器所提供的参数,返回指定页的数据; 3. 将查询结果返回前端页面,供分页器进行显示和翻页。 以下是一个使用 Node.jsMySQL 实现分页查询的示例代码: ```javascript const express = require('express'); const mysql = require('mysql'); const app = express(); // 创建 MySQL 连接池 const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'database', connectionLimit: 10 }); // 处理分页请求 app.get('/api/list', (req, res) => { const page = parseInt(req.query.page || 1); // 当前页码,默认为 1 const pageSize = parseInt(req.query.pageSize || 10); // 每页显示数量,默认为 10 const start = (page - 1) * pageSize; // 查询起始位置 // 查询记录数 const countSql = 'SELECT COUNT(*) AS total FROM table'; pool.query(countSql, (err, result) => { if (err) { console.log(err); res.status(500).send('Internal Server Error'); return; } const total = result[0].total; // 记录数 const pageCount = Math.ceil(total / pageSize); // 页数 if (page > pageCount) { res.status(404).send('Not Found'); return; } // 查询当前页记录 const listSql = `SELECT * FROM table LIMIT ?,?`; pool.query(listSql, [start, pageSize], (err, result) => { if (err) { console.log(err); res.status(500).send('Internal Server Error'); return; } // 返回结果 res.json({ page, pageSize, pageCount, total, list: result }); }); }); }); app.listen(3000, () => { console.log('Server is running at http://localhost:3000'); }); ``` 在以上示例代码中,我们首先通过 MySQL 连接池创建了一个连接,然后在处理分页请求时,先查询记录数,计算页数,再根据当前页码和每页显示数量查询当前页的数据,最后将结果返回前端页面。注意,在 SQL 语句中我们使用了 LIMIT 关键字来指定查询起始位置和数量,这是实现分页的关键。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值