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基于mongoose模块的增删改查的操作
Dec 21 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
nodejs实现的连接MySQL数据库功能示例
Jan 25 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
nodejs实现获取本地文件夹下图片信息功能示例
Jun 22 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
基于mysql的论坛(2)
2006/10/09 PHP
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
Python代理抓取并验证使用多线程实现
2013/05/03 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python多线程获取返回值代码实例
2020/02/17 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
缓刑人员的思想汇报
2014/01/11 职场文书
职工运动会感言
2014/02/07 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
聘用意向书范本
2014/04/01 职场文书
《金子》教学反思
2014/04/13 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
幼师自荐信范文
2015/03/06 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
Go语言并发编程 sync.Once
2021/10/16 Golang
Redis分布式锁的7种实现
2022/04/01 Redis