nodejs分页类代码分享


Posted in NodeJs onJune 17, 2014

分页类,我放在 plugin/Paginate.js

/**
 * 分页插件类(缺少每页的显示数,listrows明天写)
 * @param page {Number} 当前页
 * @param pagesize {Number} 每页记录数
 * @param total {Number} 总记录数
 * @constructor
 */
function Paginate(page, pagesize, total){
    if(!page || page <1){
        page = 1;
    }
    if(!pagesize || pagesize<1){
        pagesize = 20;
    }
    if(!total || total <0){
        total = 0;
    }
    this.pagesize = pagesize;
    this.total = total;
    if(this.total%this.pagesize ===0){
        this.maxpage = parseInt(this.total/this.pagesize);
    }else{
        this.maxpage = parseInt(this.total /this.pagesize) + 1;
    }
    if(page>this.maxpage){
        this.page = this.maxpage;
    }else{
        this.page = page;
    }
}
/*
* 当前开始的条数
*/
Paginate.prototype.first = function(){
    var first = (this.page-1)*this.pagesize;
    if(first>this.total){
        return (this.maxpage-1)*this.pagesize;
    }
    return first; 
}
/*
* 当前页最大的条数
*/
Paginate.prototype.last = function(){
    var last = this.first()+this.pagesize;
    if(last>this.total){
        return this.total;
    }
    return last;
}
/**
 * 上一页
 * @returns {number}
 */
Paginate.prototype.prev = function(){
    if(this.page <= 1){
        return false;
    }
    return this.page-1;
}
/**
 * 下一页
 * @returns {*}
 */
Paginate.prototype.next = function(){
    if(this.page >= this.maxpage){
        return false;
    }
    return (parseInt(this.page)+1);
}
module.exports = Paginate;

使用例子

var Paginate = require("../plugin/Paginate");
var q = req.query.q;
var paginate = new Paginate(q, 10, 185);
var page = paginate.page;//当前页数
var first = paginate.first();//当前第一条
var last = paginate.last();//当前最大条数
var maxpage = paginate.maxpage;//总页数    
var pagesize = paginate.pagesize;//每页显示数
var total = paginate.total;//总记录数
var prev = paginate.prev();//上一条
var next = paginate.next();//下一条 
res.json({page:page, first:first,last:last,maxpage:maxpage,pagesize:pagesize, total:total,prev:prev,next:next})
NodeJs 相关文章推荐
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
nodejs通过phantomjs实现下载网页
May 04 NodeJs
浅谈Nodejs观察者模式
Oct 13 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
详解如何在NodeJS项目中优雅的使用ES6
Apr 22 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
详解nodejs内置模块
May 06 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
Jun 05 #NodeJs
nodejs npm install全局安装和本地安装的区别
Jun 05 #NodeJs
nodejs文件操作模块FS(File System)常用函数简明总结
Jun 05 #NodeJs
使用forever管理nodejs应用教程
Jun 03 #NodeJs
使用upstart把nodejs应用封装为系统服务实例
Jun 01 #NodeJs
nodejs获取本机内网和外网ip地址的实现代码
Jun 01 #NodeJs
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 #NodeJs
You might like
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
详解php中反射的应用
2016/03/15 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
JS倒计时实例_天时分秒
2017/08/22 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
浅析JavaScript 函数柯里化
2020/09/08 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python3.2中的字符串函数学习总结
2015/04/23 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
Python模块的加载讲解
2019/01/15 Python
Python3 批量扫描端口的例子
2019/07/25 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
keras 读取多标签图像数据方式
2020/06/12 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
武汉英思工程科技有限公司&ndash;ORACLE面试测试题目
2012/04/30 面试题
质量保证书范本
2014/04/29 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
高一地理教学工作总结
2015/08/12 职场文书
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL