Javascript

nodeJS与MySQL实现分页数据以及倒序数据

本文主要是介绍nodeJS与MySQL实现分页数据以及倒序数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说100条数据,每10条一页,在需要的时候加载一页,这样速度肯定会变快了。
那么这里我给大家介绍如何在nodejs环境中用mysql实现分页。

前面一些必要的配置我先不详细说了,这里主要说的是地址池的配置

// 数据库信息
var connection = mysql.createConnection({
host : ‘localhost’,
port:3306,
user : ‘root’,
password : ‘’,
database : ‘url’,
multipleStatements: true //这里一定要加上这个。先别管什么用,一定要加上。
});

因为我使用的是koa框架,所以用了async 、await 。这里不做理会,下面的代码才重要。

// 获取url
router.post(’/csdnurl’, async (ctx, next) => {
var start = (ctx.request.body.page - 1) * 10;
var sql = 'SELECT COUNT(*) FROM csdnurl ORDER BY id DESC; SELECT * FROM csdnurl ORDER BY id DESC limit ’ + start + ‘,10’;
let results = await query2(sql);
ctx.body = results
});

const query2 = function (sql) {
return new Promise((resolve, reject) => {
connection.query(sql, function (error, results) {
if (error) {
reject(error);
} else {
var allCount = results[0][0][‘COUNT(*)’];
var allPage = parseInt(allCount) / 10;
var pageStr = allPage.toString();
if (pageStr.indexOf(’.’) > 0) {
allPage = parseInt(pageStr.split(’.’)[0]) + 1;
console.log(allPage)
}
var List = results[1];
resolve(List)
}
});
})

1、ctx.request.body.page这里是前台传来的页数。

2、 你可以看到sql语句有两条,哈哈,这里是关键了,在地址池配置multipleStatements: true就是这个原因,如果你不加,就会报错。

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/119816234

这篇关于nodeJS与MySQL实现分页数据以及倒序数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!