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

Jacquelyn38 等级 1280 0 0

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

那么这里我给大家介绍如何在nodejs环境中用mysql实现分页。

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

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

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

// 获取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就是这个原因,如果你不加,就会报错。

3、**ORDER BY id DESC**这是倒序的意思(根据id倒序)。

4、 然后我使用await 异步操作封装了一个函数,是为了能够取到results值。当然你使用了express就不用考虑这一点,为啥会这样呢?https://blog.csdn.net/qq\_39045645/article/details/101537424

5、**allPage** 是所有的页数,因为可能遇到小数的情况所以向下取整加一。

6、**resolve(List) ** 返回给前台数据

本文转转自微信公众号前端历劫之路原创https://mp.weixin.qq.com/s/PgOwC8lWDmVYgK3Qar7Y1g,如有侵权,请联系删除。

收藏
评论区

相关推荐

使用nodeJs开发自己的图床应用
前言 本文主要复盘笔者的nodeJS,通过一个线上的实战案例来总结node生态常用的技术点和最佳实践。后面会花费大概一个月的时间输出3篇以实战为主的nodeJs项目,本文是第一篇,主要介绍如何使用nodeJs开发一个图床应用。该项目对于测试和个人服务型网站非常实用,大家可以基于此扩展出更强大的应用。本文的图床项目主要使用Koa进行开发,不熟悉的可以先研究一下
nodeJS与MySQL实现分页数据以及倒序数据
大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说100条数据,每10条一页,在需要的时候加载一页,这样速度肯定会变快了。那么这里我给大家介绍如何在nodejs环境中用mysql实现分页。 前面一些必要的配置我先不详细说了,这里主要说的是地址池的配置// 数据库信息var connection mysq
Windows环境下轻松搭建NodeJs服务器
大家好,我是皮皮,今天给大家分享一些好玩的 前言Nodejs是GoogleV8引擎的一个JavaScript脚本语言,实际上也就是相当于服务器一样,可以解析网页内容并产生效果。它的出现令JavaScript如虎添翼,而且Node比JavaScript执行更为快速,并且支持分布式,因为它使用了事件驱动型的非阻塞式的模型。说太多反而没意思,不如我们自己搭建一个。
MHA部署
参考:[http://www.cnblogs.com/gomysql/p/3675429.html](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.cnblogs.com%2Fgomysql%2Fp%2F3675429.html) 1.在所有节点安装MHA node所需的perl模
MySQL 序列使用:使用 AUTO_INCREMENT、获取AUTO_INCREMENT值
MySQL 序列使用 ========== MySQL 序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 * * * 使用 AUTO\_INCREMENT ------------------ MySQL
MySQL与PostgreSQL相比哪个更好?
网上已经有很多拿PostgreSQL与MySQL比较的文章了,这篇文章只是对一些重要的信息进行下梳理。在开始分析前,先来看下这两张图: ![](https://oscimg.oschina.net/oscnet/3de5a066c29e80cc3d9a783fc2932b7a66d.png) MySQL MySQL声称自己是最流行的开源数据库。LAMP
MySQL存储过程之事务管理
MySQL存储过程之事务管理 ACID:Atomic、Consistent、Isolated、Durable 存储程序提供了一个绝佳的机制来定义、封装和管理事务。 **1,MySQL的事务支持** MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关: Java代码  1. MyISAM:不支
MySQL学习【第四篇mysql体系结构管理】
一.客户端与服务端模型 =========== 1.mysql是一个典型的c/s服务结构 -------------------- 1.mysql自带的客户端程序(/application/mysql/bin) mysql       mysqladmin   mysqldump 2.市面上大部分的开发语言都需要一个客户端连接程序连接mysql的服务
mysql经典面试题
1、MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 2、MySQL中myisam与innodb的区别,至少5点 (1)、问5点不同; (2)、innodb引擎的4大特性 (3)、2者selectcount(\*)哪个更快,为什么 3、MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义 (
ubuntu linux 12.04 下nodejs开发环境的配置
废话不说,步入正题 环境: ubuntu 12.04 64位 **为了不受权限问题影响,我选择的是直接使用root帐号** 下载 nodeJS >> wget http://nodejs.org/dist/v0.10.26/node-v0.10.24.tar.gz 于是你可以在你的当前目录下找到 node-v0.10.24.
Django内容管理系统(CMS)BVDN环境搭建_mysql数据库安装配置
**Mysql安装方式**   msi文件安装:msi的安装与常规windows程序安装类似,双击一路默认即可完成安装,此处不再对msi方式安装进行介绍。   zip文件安装:即免安装模式,解压缩后进行简单的设置即可使用。下文以此种安装方式进行Mysql的安装部署。 **Mysql下载**   1、mysql官方下载:https://www.mysq
Linux下Nodejs安装之Hello World
去官网下载安装包 node-v0.12.7.tar.gz 1.mkdir /usr/local/nodejs 2.tar -zvxf node-v0.12.7.tar.gz 3\. cd node-v0.12.7.tar.gz 4\. ./configure --prefix=/usr/local/nodejs 5.make && make ins
Linux常用环境安装
### **node环境安装**  更新ubuntu软件源 sudo apt-get update  安装nodejs sudo apt-get install nodejs sudo apt install nodejs-legacy sudo apt install npm 更新npm源
SQLServer迁移至MySQL
##SQLServer迁移至MySQL SQLServer迁移至MySQL应该有很多种迁移方案,我用的方案是使用工具:Navicat Premium。 假设我们现在要把192.168.3.126(SQLServer数据库)上的P2PSite数据库迁移至192.168.3.106(MySQL数据库) ###步骤如下 在192.168.3.106(MySQL)
SQLServer迁移至MySQL
##SQLServer迁移至MySQL SQLServer迁移至MySQL应该有很多种迁移方案,我用的方案是使用工具:Navicat Premium。 假设我们现在要把192.168.3.126(SQLServer数据库)上的P2PSite数据库迁移至192.168.3.106(MySQL数据库) ###步骤如下 在192.168.3.106(MySQL)