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微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
nodejs处理图片的中间件node-images详解
May 08 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
详解webpack打包nodejs项目(前端代码)
Sep 19 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
Javascript倒计时代码
2010/08/12 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
总结几道关于Node.js的面试问题
2017/01/11 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
2017/04/13 jQuery
element-ui 本地化使用教程详解
2019/10/28 Javascript
pycharm安装图文教程
2017/05/02 Python
基于Python实现用户管理系统
2019/02/26 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
生产经理的自我评价分享
2013/11/07 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
环保公益广告语
2014/03/13 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
详解Laravel制作API接口
2021/05/31 PHP
Element实现动态表格的示例代码
2021/08/02 Javascript
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis