nodejs个人博客开发第五步 分配数据


Posted in NodeJs onApril 12, 2017

本文为大家分享了nodejs个人博客开发的分配数据,具体内容如下

使用回掉大坑进行取数据

能看明白的就看,看不明白的手动滑稽

/**
* 首页控制器
*/
var router=express.Router();
/*每页条数*/
var pageSize=5;

router.get('/',function(req,res,next){
  var currentPage=parseInt(req.params.page);
  var cid=0;
  
  var categoryModel=F.model("category");
  var articleModel=F.model("article");
  // 分类数据
  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);  
        });      
      });
    });

  });
  
  //F.model("category").addCate({"name":"测试"});
  //F.model("category").saveCate({"name":"测试1"},"id=4");
  //F.model("category").delCate("id=4");
  /*渲染模板*/
  //res.render("home/index");
});
module.exports=router;

文章模型:

/**
* 文章模型文件
*/
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);
  }
};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
NodeJS中的MongoDB快速入门详细教程
Nov 11 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
angular2+nodejs实现图片上传功能
Mar 27 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
nodejs中sleep功能实现暂停几秒的方法
Jul 12 NodeJs
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
Sep 06 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 #NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 #NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 #NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 #NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 #NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 #NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 #NodeJs
You might like
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
模仿OSO的论坛(二)
2006/10/09 PHP
第五节--克隆
2006/11/16 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
javascript学习之json入门
2016/12/22 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
详解搭建es6+devServer简单开发环境
2018/09/25 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
Python selenium的基本使用方法分析
2019/12/21 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
如何用Python徒手写线性回归
2021/01/25 Python
使用phonegap检测网络状态的方法
2017/03/30 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
文艺晚会主持词
2014/03/24 职场文书
出纳担保书范文
2014/04/02 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
单位介绍信格式范文
2015/05/04 职场文书