返回顶部
首页 > 资讯 > 数据库 >nodeJS与MySQL实现分页数据以及倒序数据
  • 489
分享到

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

nodeMySQL分页nodeMySQL倒序数据 2022-05-11 23:05:46 489人浏览 薄情痞子
摘要

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

大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说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)
      }
    });
  })

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

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

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

然后我使用await 异步操作封装了一个函数,是为了能够取到results值。当然你使用了express就不用考虑这一点,为啥会这样呢?如下:

关于使用 koa路由与mysql模块, ctx.body获取不到值的问题


var Koa = require('koa');
var Router = require('koa-router' );
var bodyParser = require('koa-bodyparser');
var mysql = require('mysql');
var app = new Koa();
var router = new Router();
app.use(bodyParser());

var connection = mysql.createConnection({
 host   : 'localhost',
 port:3306,
 user   : 'root',
 password : 'xxx',
 database : 'url'
});
connection.connect();


//第一类封装 ,一般用于不传递多个参数
const query = function (sql) {
  return new Promise((resolve, reject) => {
    connection.query(sql, function (error, results) {
      if(error){
        reject(error);
      }else{
        resolve(results)
      }
    });
  })
}
//第二类封装 ,一般用于传递多个参数
const query1 = function (userStr,name,passwd,token1) {
  return new Promise((resolve, reject) => {
    connection.query(userStr, function (error, result) {
      if(error){
        reject(error);
      }else{
        if (result.length > 0) {
          JSON['message'] = '用户已经存在';
          json['resultCode']= 1;
        } else {
          json['message'] = '注册成功';
          json['token'] = token1;
          json['resultCode'] = 200;
          var insertStr = `insert into login (username, password,token) values ("${name}", "${passwd}","${token1}")`;
          console.log(insertStr)
          connection.query(insertStr, function (err, res) {
            if (err) throw err;
          })
        }
        resolve(json)
      }
    });
  })
}


// 使用第一类封装
router.get( '/csdnurl', async(ctx, next) => {
 var sql = "select * from csdnurl";
  let results = await query(sql);
  ctx.body=results
});
// 使用第一类封装
router.post('/login', async (ctx, next) => {
  var name = ctx.request.body.username;
  var passwd = ctx.request.body.password;
  var userStr = `select username,password,token from login where username="${name}" and password="${passwd}"`;
  let results = await query(userStr);
  ctx.body = results
});

// 使用第二类封装
router.post('/reGISter', async (ctx, next) => {
  var name = ctx.request.body.username;
  var passwd = ctx.request.body.password;
  var token1 = Jwt.sign({
    username: name
  }, secreTKEy, {
    expiresIn: 60 * 8
  });
  var userStr = `select * from login where username="${name}"`;
  let results = await query1(userStr,name,passwd,token1);
  ctx.body = json
});

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

resolve(List) 返回给前台数据

到此这篇关于nodeJS与MySQL实现分页数据以及倒序数据的文章就介绍到这了,更多相关nodeJS MySQL分页及倒序内容请搜索自学编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持自学编程网!

您可能感兴趣的文档:

--结束END--

本文标题: nodeJS与MySQL实现分页数据以及倒序数据

本文链接: https://lsjlt.com/news/9614.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • nodeJS与MySQL实现分页数据以及倒序数据
    大家在做项目时肯定会遇到列表类的数据,如果在前台一下子展示,速度肯定很慢,那么我们可以分页展示,比如说100条数据,每10条一页,在需要的时候加载一页,这样速度肯定会变快了。 那么这里我给大家介绍如何在nodejs环...
    99+
    2022-05-11
    node MySQL 分页 node MySQL倒序数据
  • nodejs中如何实现数据分页
    小编给大家分享一下nodejs中如何实现数据分页,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下控制器路由定义首页路由...
    99+
    2024-04-02
  • MySQL如何实现数据分页
    MySQL可以通过使用LIMIT子句来实现数据分页。LIMIT子句用于限制查询结果返回的行数。它的基本语法如下:```SELEC&#...
    99+
    2023-08-15
    MySQL
  • MySQL怎么实现数据分页
    MySQL可以使用LIMIT和OFFSET关键字来实现数据分页。LIMIT用于限制查询结果的记录数,OFFSET用于指定查询结果的起...
    99+
    2023-08-24
    MySQL
  • oracle数据库倒序排序怎么实现
    在Oracle数据库中,可以使用ORDER BY子句配合DESC关键字来实现倒序排序。下面是一个示例: SELECT col...
    99+
    2024-03-05
    oracle
  • PHP MySQL怎么实现数据分页
    这篇文章主要讲解了“PHP MySQL怎么实现数据分页”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP MySQL怎么实现数据分页”吧!SQL ...
    99+
    2024-04-02
  • Vue+ElementUI 实现分页功能-mysql数据
    目录1.问题2.解决2.1分页组件2.2获取数据库数据的函数:getData():2.3页面加载完成,需要请求第一页的数据3.分析4.结果1.问题 当数据库中数据比较多时,就要每次只...
    99+
    2024-04-02
  • MySQL怎么实现数据分页查询
    在MySQL中,可以使用LIMIT子句来实现数据分页查询。LIMIT子句用于限制查询结果返回的行数,可以指定返回的起始行和总行数。 ...
    99+
    2024-05-24
    mysql
  • nodejs实现大数据
    随着移动互联网的迅速发展和智能终端设备的普及,大数据时代已经来临。在这个时代中,大量数据的收集和处理已经成为了一项重要的任务。Node.js 是一种允许开发者使用 JavaScript 构建高度可伸缩的网络应用程序的运行环境。它由 Goog...
    99+
    2023-05-14
  • MySQL数据库表的模糊/多行/分组/排序/分页查询以及字mysql数据类型的讲解---讲解二
    前言:今天给大家讲的是:MySQL数据库表的模糊/多行/分组/排序/分页查询以及mysql数据类型的讲解,当然如果你对数据库的基础操作--对库的创建/对表的增删改查有兴趣,可以去看看我的这篇文章---MySQL数据库表的基础操作(增删改查)...
    99+
    2018-10-16
    MySQL数据库表的模糊/多行/分组/排序/分页查询以及字mysql数据类型的讲解---讲解二
  • cmd指令连接mysql数据库,以及创建数据库与表
    cmd指令连接mysql数据库,以及创建数据库与表 1, 打开命令提示符cmd(直接搜索cmd回车) 2,进入mysql,在cmd命令行输入mysql -uroot -p,然后输入你的mysql密码...
    99+
    2023-10-02
    数据库 mysql sql
  • PHP + MySQL实现数据分页显示的示例
    这篇文章主要介绍PHP + MySQL实现数据分页显示的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支...
    99+
    2024-04-02
  • MySQL实现数据分页的方法是什么
    MySQL实现数据分页的方法通常是使用LIMIT子句。通过在查询语句中使用LIMIT子句,可以限制返回的数据行数,并可以指定返回数据...
    99+
    2024-04-09
    MySQL
  • MySQL数据库以及基本的数据类型
    day01 MySQL数据库及数据类型一、MySQL概述:    MySQL数据库是一个关系型数据库,是目前流行的开源代码数据库,是完全网络化的跨平台的关系...
    99+
    2024-04-02
  • MYSQL 查询数据排序数据和分组数据
    在mysql查询过程中,可以对数据进行过滤,也可以对数据进行排序,可以对数据分组,下面分别讲述排序数据和分组数据例子。 1,数据的排序 使用 ORDER BY select *...
    99+
    2024-04-02
  • MySQL中如何更新数据以及删除数据
    这篇文章主要介绍了MySQL中如何更新数据以及删除数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(1)、更新数据MySQL中使用upda...
    99+
    2024-04-02
  • Android实现ListView分页加载数据
    本文实例为大家分享了ListView分页加载数据的具体代码,供大家参考,具体内容如下 FenyeActivity package com.example.myapplicatio...
    99+
    2024-04-02
  • 【ElasticSearch】ES与MySQL数据同步方案及Java实现
    文章目录 一、同步实现思路1、方案一:同步调用2、方案二:异步通知3、方案三:监听binlog 二、实现ES与MySQL数据同步1、导入hotel-admin工程2、项目分析3、SpringAMQP整合4、声明队列和交换机5、发...
    99+
    2023-08-30
    elasticsearch mysql java
  • Qt数据库应用之实现通用数据库分页
    目录一、前言二、功能特点三、体验地址四、效果图五、相关代码一、前言 数据库分页展示,在所有的涉及到数据库记录的项目中都是需要的,除了简单的设备信息表、用户信息表这种很少几条几十条数据...
    99+
    2024-04-02
  • 小程序实现页面跳转与数据传递方案
    目录页面跳转和数据传递wx的API跳转navigator组件(了解)总结页面跳转和数据传递 界面的跳转有两种方式:通过navigator组件 和 通过wx的API跳转 这里我们先以w...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作