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教程之异步I/O
Nov 21 NodeJs
Nodejs实战心得之eventproxy模块控制并发
Oct 27 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
nodejs实现百度舆情接口应用示例
Feb 07 NodeJs
Nodejs实现WebSocket代码实例
May 19 NodeJs
Nodejs实现微信分账的示例代码
Jan 19 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
PHP页面间传递参数实例代码
2008/06/05 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
JavaScript解析JSON数据示例
2019/07/16 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
Python实现登陆文件验证方法
2018/10/06 Python
python文件写入write()的操作
2019/05/14 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
关于python中导入文件到list的问题
2020/10/31 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
项目转让协议书
2014/10/27 职场文书
技术转让协议书
2016/03/19 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android