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的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
用nodejs搭建websocket服务器
Jan 23 NodeJs
利用nodejs监控文件变化并使用sftp上传到服务器
Feb 18 NodeJs
nodejs根据ip数组在百度地图中进行定位
Mar 06 NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 NodeJs
nodejs判断文件、文件夹是否存在及删除的方法
Nov 10 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 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
第七节 类的静态成员 [7]
2006/10/09 PHP
php 操作调试的方法
2012/07/12 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
js脚本实现数据去重
2014/11/27 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
js实现文字垂直滚动和鼠标悬停效果
2015/12/31 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
C++是不是类型安全的
2014/02/18 面试题
护理专业应届毕业生推荐信
2013/11/15 职场文书
幼儿教师研修感言
2014/02/12 职场文书
40岁生日感言
2014/02/15 职场文书
司机岗位职责说明书
2014/07/29 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
zabbix监控mysql的实例方法
2021/06/02 MySQL
JavaScript的Set数据结构详解
2022/02/18 Javascript