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开发环境配置与使用
Nov 17 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
nodejs进阶(6)—连接MySQL数据库示例
Jan 07 NodeJs
nodejs个人博客开发第五步 分配数据
Apr 12 NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 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实现的后台表格分页功能示例
2017/10/23 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
2011/03/28 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
浅谈JavaScript的闭包函数
2016/12/08 Javascript
vue-axios使用详解
2017/05/10 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
javascript实现评分功能
2020/06/24 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Ubuntu下安装PyV8
2016/03/13 Python
详解Python中heapq模块的用法
2016/06/28 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
python使用turtle库绘制树
2018/06/25 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
Python self用法详解
2020/11/28 Python
运动会广播稿200米(5篇)
2014/10/15 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技
Java 异步任务计算FutureTask
2022/04/28 Java/Android
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android