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学习笔记之Connect中间件应用实例
Jan 27 NodeJs
nodejs导出excel的方法
Jun 30 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
nodejs微信公众号支付开发
Sep 19 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
使用npm安装最新版本nodejs
Jan 18 NodeJs
Nodejs实现用户注册功能
Apr 14 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
zend framework配置操作数据库实例分析
2012/12/06 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
js检测浏览器版本、核心、是否移动端示例
2014/04/24 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
Python实现的合并两个有序数组算法示例
2019/03/04 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
python实现门限回归方式
2020/02/29 Python
Python3 搭建Qt5 环境的方法示例
2020/07/16 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
节水倡议书
2015/01/19 职场文书
关于开学的感想
2015/08/10 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL