数据分页,js_脚本之家金沙js8331

正文为我们享受了nodejs个人博客开采的数码分页,具体内容如下

操纵器路由定义

首页路由:

首页分页路由:

/**
* 首页控制器
*/
var router=express.Router();
/*每页条数*/
var pageSize=4;
/*首页*/ 
router.get('/',function(req,res,next){
    var cid=0;
    F.model("article").assignIndexData(cid,1,pageSize,res);
});
/*首页分页*/
router.get('/index/:page',function(req,res,next){
    var currentPage=parseInt(req.params.page);
    var cid=0;
    F.model("article").assignIndexData(cid,currentPage,pageSize,res);
});

分类列表分页路由:

/*分类页*/
router.get('/category/:cid/:page',function(req,res,next){
    var cid=req.params.cid;
    var currentPage=parseInt(req.params.page);
    F.model("article").assignIndexData(cid,currentPage,pageSize,res);
});

调节器路由定义

 模型数据部分

调整器调用article模型的assignIndexData(卡塔尔方法,参数:分类id,当前页,每页条数,响应对象

调用category模型的getAllList(卡塔尔国方法赢得分类list,参数:回调函数

调用article模型的getCount(State of Qatar方法赢得总条数,参数:分类id,回调函数

调用article模型的get阿特iclePager(State of Qatar方法赢得作品对象的数码list,参数:分类id,当前页,每页条数,回调函数

对上一页,下一页举行-1和+1,并打开推断,上一页应大于0,下一页应小于等于总页数(总条数/每页条数
向上取整)

把数量分配到模板上

/**
* 文章模型文件
*/
module.exports={
    /*获取条数*/
    getCount:function(categoryId,callback){
        var condition="";
        if(categoryId!=0){
            condition="where category_id="+categoryId;
        }    
        var sql="select count(*) num from article "+condition;
        db.query(sql,callback);
    },
    /*获取分页数据*/
    getArticlePager:function(categoryId,currentPage,pageSize,callback){
        if(currentPage<=0||!currentPage) currentPage=1;
        var start=(currentPage-1)*pageSize;
        var end=pageSize;
        var condition="";
        if(categoryId!=0){
            condition="where category_id="+categoryId;
        }
        var sql="select * from article "+condition+" order by time desc limit "+start+","+end;
        db.query(sql,callback);
    },
    /*归档*/
    getArchives:function(callback){
        db.query("select time from article order by time desc",callback);
    },
    /*分配首页数据*/
    assignIndexData:function(cid,currentPage,pageSize,res){
        var categoryModel=F.model("category");
        var articleModel=this;
        // 分类数据
        categoryModel.getAllList(function(err,categoryList){
            // 文章条数
            articleModel.getCount(cid,function(err,nums){
                // 文章分页
                articleModel.getArticlePager(cid,currentPage,pageSize,function(err,articleList){
                    var nextPage=(currentPage+1)>=Math.ceil(nums[0].num/pageSize) ? Math.ceil(nums[0].num/pageSize) : currentPage+1;
                    var prePage=(currentPage-1)<=0 ? 1 : currentPage-1;
                    // 归档
                    articleModel.getArchives(function(err,allArticleTime){
                        var newArticleTime=[];
                        for(var i=0;i<allArticleTime.length;i++){
                            newArticleTime.push(F.phpDate("y年m月",allArticleTime[i].time));
                        }
                        /*分配数据*/
                        var data={
                            categoryList:categoryList,
                            articleList:articleList,
                            cid:cid,
                            nextPage:nextPage==0 ? 1 : nextPage,
                            prePage:prePage,
                            allArticleTime:newArticleTime,
                            currentPage:currentPage
                        };

                        /*渲染模板*/
                        res.render("home/index",data);    
                    });            
                });
            });

        });
    }
};

首页路由:

 模板部分

          <nav>
            <ul class="pager">
              <li><a class="btn <%if(currentPage==prePage){%>disabled<%}%>" 
                href="/<%if(cid!=0){%>category/<%=cid%>/<%}else{%>index/<%}%><%=prePage%>">上一页</a></li>
              <li><a class="btn <%if(currentPage==nextPage){%>disabled<%}%>" 
                href="/<%if(cid!=0){%>category/<%=cid%>/<%}else{%>index/<%}%><%=nextPage%>">下一页</a></li>
            </ul>
          </nav>

 

 

效果图:

金沙js8331 1

金沙js8331 2

首页分页路由:

/*** 首页控制器*/var router=express.Router();/*每页条数*/var pageSize=4;/*首页*/ router.get('/',function{ var cid=0; F.model.assignIndexData;});/*首页分页*/router.get('/index/:page',function{ var currentPage=parseInt; var cid=0; F.model.assignIndexData(cid,currentPage,pageSize,res);});

分类列表分页路由:

/*分类页*/router.get('/category/:cid/:page',function{ var cid=req.params.cid; var currentPage=parseInt; F.model.assignIndexData(cid,currentPage,pageSize,res);});

模型数据部分

调整器调用article模型的assignIndexData(卡塔尔(قطر‎方法,参数:分类id,当前页,每页条数,响应对象

调用category模型的getAllList(卡塔尔方法赢得分类list,参数:回调函数

调用article模型的getCount(卡塔尔(قطر‎方法赢得总条数,参数:分类id,回调函数

调用article模型的getArticlePager(卡塔尔方法赢得小说对象的数码list,参数:分类id,当前页,每页条数,回调函数

对上一页,下一页进行-1和+1,并开展推断,上一页应大于0,下一页应低于等于总页数

/*** 文章模型文件*/module.exports={ /*获取条数*/ getCount:function{ var condition=""; if{ condition="where category_select count num from article "+condition; db.query; }, /*获取分页数据*/ getArticlePager:function(categoryId,currentPage,pageSize,callback){ if(currentPage<=0||!currentPage) currentPage=1; var start=*pageSize; var end=pageSize; var condition=""; if{ condition="where category_select * from article "+condition+" order by time desc limit "+start+","+end; db.query; }, /*归档*/ getArchives:function{ db.query("select time from article order by time desc",callback); }, /*分配首页数据*/ assignIndexData:function(cid,currentPage,pageSize,res){ var categoryModel=F.model; var articleModel=this; // 分类数据 categoryModel.getAllList(function{ // 文章条数 articleModel.getCount(cid,function{ // 文章分页 articleModel.getArticlePager(cid,currentPage,pageSize,function{ var nextPage=>=Math.ceil ? Math.ceil : currentPage+1; var prePage=<=0 ? 1 : currentPage-1; // 归档 articleModel.getArchives(function{ var newArticleTime=[]; for(var i=0;i  上一页 下一页  

如上正是本文的全体内容,希望对我们的学习抱有助于,也可望大家多都赐教脚本之家。

发表评论

电子邮件地址不会被公开。 必填项已用*标注