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实现黑名单中间件设计
Jun 17 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
nodejs中实现路由功能
Dec 29 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
利用nodeJs anywhere搭建本地服务器环境的方法
May 12 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
nodejs制作小爬虫功能示例
Feb 24 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 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/03/23 PHP
基于php iconv函数的使用详解
2013/06/09 PHP
thinkPHP查询方式小结
2016/01/09 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
Js 刷新框架页的代码
2010/04/13 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
Node调用Java的示例代码
2017/09/20 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
python字典get()方法用法分析
2015/04/17 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
使用Python进行目录的对比方法
2018/11/01 Python
PyTorch的torch.cat用法
2020/06/28 Python
Python如何读写二进制数组数据
2020/08/01 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
办公室副主任岗位职责
2013/11/25 职场文书
银行门卫岗位职责
2013/12/29 职场文书
户籍证明的格式
2014/01/13 职场文书
小学生红领巾广播稿
2014/01/21 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
出国导师推荐信
2015/03/25 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js