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 相关文章推荐
Ubuntu中搭建Nodejs开发环境过程分享
Jun 01 NodeJs
nodejs教程之入门
Nov 21 NodeJs
nodejs教程之异步I/O
Nov 21 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
Windows系统中安装nodejs图文教程
Feb 28 NodeJs
详解nodeJS中读写文件方法的区别
Mar 06 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
一文秒懂nodejs中的异步编程
Jan 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采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
laravel自定义分页效果
2017/07/23 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
javascript 写的一个简单的timer
2009/07/30 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
python算法表示概念扫盲教程
2017/04/13 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
Python实现数值积分方式
2019/11/20 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
Python列表切片常用操作实例解析
2020/03/10 Python
详解python with 上下文管理器
2020/09/02 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
网络安全方面的面试题
2016/01/07 面试题
什么是抽象
2015/12/13 面试题
首次购房证明
2015/06/19 职场文书
2019个人工作总结
2019/06/21 职场文书
python全面解析接口返回数据
2022/02/12 Python