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的require模块(文件模块/核心模块)及路径介绍
Jan 14 NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 NodeJs
初始Nodejs
Nov 08 NodeJs
nodejs实现的一个简单聊天室功能分享
Dec 06 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
nodejs实例解析(输出hello world)
Jan 03 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
理解nodejs的stream和pipe机制的原理和实现
Aug 12 NodeJs
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
May 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
php 学习资料零碎东西
2010/12/04 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
PHP查询分页的实现代码
2017/06/09 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
python实现感知器
2017/12/19 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
Django实现从数据库中获取到的数据转换为dict
2020/03/27 Python
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
美术教师自我鉴定
2014/02/12 职场文书
六一节目主持词
2014/04/01 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
导游词之山海关
2019/12/10 职场文书
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle