【发布时间】:2018-08-03 08:09:10
【问题描述】:
我想在响应中获取并提供总的 total_record_count、page_number、page_size、total_pages、has_more 信息,并且能够对结果进行分页,因为我将查询限制为 100。最好的方法是什么?
这是我目前的设置:
router.get('/?', function(req, res, next) {
const sql = "SELECT * from users ";
const existingParams = ["title", "active"].filter(field => req.query[field]);
if (existingParams.length) {
sql += " WHERE ";
sql += existingParams.map(field => `${field} = ?`).join(" AND ");
sql += " LIMIT 100 ";
}
connection.query(
sql,
existingParams.map(field => req.query[field]),
function (error, results, fields) {
res.json({"status": 200, "error": null, "total_record_count": 604, "page_number": 1, "page_size": 100, "total_pages": 7, "has_more": true, "records": results});
}
);
});
如果 total_record_count 超过 LIMIT,我希望在 url 中能够提供/允许页面参数“p”。所以查询参数p指定返回哪个页面,从1开始。如果省略p参数,则默认值为1。类似这样:
http://localhost:4001/api/v1/users/?active=0&title=mr&p=1
【问题讨论】:
标签: javascript mysql sql node.js express