Nodejs+mysql实现分页查询

前言:

上篇文章不知道什么原因不能被访问,申诉感觉麻烦重新整理了下

一.实现简易接口不会的同学移步:node实现简易接口

1.mysql中提供的分页的方法 : select * from 表名 limit m,n

/*  

* 分页查询

* mysql 提供的分页方法: limit m,n ==>m代表从第几号位开始,n: 代表选取的个数

** eg(前10条数据):select * from websites limit 0,10 ==>从第一号位开始,取10条数据  (当前page_num=1) ;m=(1-1)*10

** eg(11-20条数据):select * from websites limit 10,10  ==>(当前page_num=2) ;   m=(2-1)*10

* 由两个例子可见sql分页语句应为:

        select * from table limit (page_num-1)*page_size,page_size; 

        其中page_num是页码,page_szie是每页显示的条数

*/

2.具体代码

app.get('/api/getAll', function (req, res) {
    const page_num = req.query.page_num  //当前的num
    const page_size = req.query.page_size  //当前页的数量
    const params = [(parseInt(page_num) - 1) * parseInt(page_size), parseInt(page_size)]
    var sql = "select * from websites limit ?,?"

    connection.query(sql, params, function (err, result) {
        if (err) {
            console.log('err', err.message)
            res.json({
                code: 1,
                message: '查询失败'
            })

        } else {
            let sqlTotal = 'select count(*) as total from websites' //as更换名称
            connection.query(sqlTotal, function (error, among) {
                if (error) {
                    console.log(error);
                } else {
                    let total = among[0]['total'] //查询表中的数量
                    res.json({
                        result: 1,
                        status: 200,
                        message: "success",
                        data: result,
                        paging: {
                            page_num: page_num,
                            page_size: page_size,
                            total: total
                        }
                    })
                }
            })

        }
    })
})

3.返回数据的格式


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。