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中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
浅谈NodeJS中require路径问题
May 07 NodeJs
Nodejs抓取html页面内容(推荐)
Aug 11 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
NodeJS使用七牛云存储上传文件的方法
Jul 24 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
Sep 19 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
详解Nodejs内存治理
May 13 NodeJs
nodejs基础之常用工具模块util用法分析
Dec 26 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 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
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
2010年最佳jQuery插件整理
2010/12/06 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python模块之StringIO使用示例
2015/04/08 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
python实现的简单抽奖系统实例
2015/05/22 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python实现ATM系统
2020/02/17 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
美国折扣网站:jClub
2017/08/07 全球购物
党支部党的群众路线对照检查材料
2014/09/24 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
Python使用openpyxl模块处理Excel文件
2022/06/05 Python