💂 个人网站: 【紫陌】【笔记分享网】
💅 想寻找共同学习交流、共同成长的伙伴, 请点击【前端学习交流群】今天要用node写项目分页接口,今天踩了几个坑,特此写个文章加深记忆!也对limit加深影响。
先了解limit
需要pageSize,pageNum两个参数,其它的看你需求。pageSize是分页每页对应的条数,pageNum是第几页, 分页的公式: pagenum =( pagenum - 1 ) * pagesize
用法:limit pagenum =( pagenum - 1 ) * pagesize ,pagesize
1.先看接口文档
请求URL:
/my/article/list
请求方式:
- GET
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
pagenum | 是 | int | 页码值 |
pagesize | 是 | int | 每页显示多少条数据 |
cate_id | 是 | string | 文章分类的 Id |
state | 是 | string | 文章的状态,可选值有:已发布、草稿 |
这是接口文档的要求
2.定义路由
router->article.js
//获取文章列表
router.get('/list',article_handler.getArticle)
3.书写路由逻辑(重点)
router-handeler->article.js
注意: pagesize前端传来的可选参数,如果没传给个默认值。req.body.pagesize传来的是字符串需要parseInt()函数转化
//文章列表显示处理函数
exports.getArticle = (req, res) => {
//定义SQL语句
const sql = ` SELECT a.Id,a.title,a.pub_date,a.state,b.name
FROM ev_articles a ,ev_article_cate b
WHERE a.is_delete = 0 AND ? = b.Id AND b.is_delete = 0 AND a.state = ?
ORDER BY a.id ASC
LIMIT ? , ? `
//解构请求带来的参数
const {cate_id,state} = req.body
//pagesize一页展示多条数据 pagesize前端传来的可选参数,如果没传给个默认值5。传来的是字符串需要parseInt()函数转化
const pagesize = parseInt(req.body.pagesize) || 5
//pagenum当前第几页 pagenum前端传来的可选参数,如果没传给个默认值1。传来的是字符串需要parseInt()函数转化
const pagenum =( parseInt(req.body.pagenum) - 1 )* pagesize || 1
//执行SQL语句
db.query(sql,[cate_id,state,pagenum,pagesize], (err, results) => {
// 执行 SQL 语句失败
if (err) return res.cc(err)
// 执行 SQL 语句成功
res.send({
status: 0,
message: '获取文章列表成功!',
data: results,
})
})
}
大致基本就是这样了!!!