在我的项目中,我需要使用分页查询数据库,并为用户提供基于当前搜索结果进行查询的功能。像限制之类的东西,我找不到任何与nodejs一起使用的东西。我的后端是mysql,我正在写一个rest api。
原文由 Dark Coder 发布,翻译遵循 CC BY-SA 4.0 许可协议
在我的项目中,我需要使用分页查询数据库,并为用户提供基于当前搜索结果进行查询的功能。像限制之类的东西,我找不到任何与nodejs一起使用的东西。我的后端是mysql,我正在写一个rest api。
原文由 Dark Coder 发布,翻译遵循 CC BY-SA 4.0 许可协议
我采用了@Benito 的解决方案,并试图使其更清楚
var numPerPage = 20;
var skip = (page-1) * numPerPage;
var limit = skip + ',' + numPerPage; // Here we compute the LIMIT parameter for MySQL query
sql.query('SELECT count(*) as numRows FROM users',function (err, rows, fields) {
if(err) {
console.log("error: ", err);
result(err, null);
}else{
var numRows = rows[0].numRows;
var numPages = Math.ceil(numRows / numPerPage);
sql.query('SELECT * FROM users LIMIT ' + limit,function (err, rows, fields) {
if(err) {
console.log("error: ", err);
result(err, null);
}else{
console.log(rows)
result(null, rows,numPages);
}
});
}
});
原文由 Amirouche Zeggagh 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2.1k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
5 回答1.5k 阅读
5 回答2.3k 阅读
2 回答2.2k 阅读
2 回答1k 阅读✓ 已解决
3 回答1.3k 阅读
您可以尝试类似的方法(假设您使用 Express 4.x)。
使用 GET 参数(这里 page 是你想要的页面结果数,npp 是每页的结果数)。
在此示例中,查询结果设置在响应负载的
results
字段中,而分页元数据设置在pagination
字段中。至于根据当前搜索结果查询的可能性,您将不得不稍微扩展,因为您的问题有点不清楚。
这是此示例的
package.json
文件: