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实现黑名单中间件设计
Jun 17 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
nodejs express配置自签名https服务器的方法
May 22 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 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
如何实现浏览器上的右键菜单
2006/07/10 Javascript
JavaScript 学习 - 提高篇
2007/02/02 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
JS判定是否原生方法
2013/07/22 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
Python入门篇之正则表达式
2014/10/20 Python
让python在hadoop上跑起来
2016/01/27 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
Django日志及中间件模块应用案例
2020/09/10 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
HTML 5 标签、属性、事件及浏览器兼容性速查表 附打包下载
2012/10/20 HTML / CSS
应用服务器有那些
2012/01/19 面试题
大学生毕业的自我评价分享
2014/01/02 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
民主评议党员工作总结
2014/10/20 职场文书
自主招生专家推荐信
2015/03/26 职场文书
西柏坡观后感
2015/06/08 职场文书
2016高考寄语集锦
2015/12/04 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技