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服务器(3):代码模块化
Dec 18 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
Nodejs读取文件时相对路径的正确写法(使用fs模块)
Apr 27 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
Nodejs实现用户注册功能
Apr 14 NodeJs
Nodejs libuv运行原理详解
Aug 21 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
Python查询IP地址归属完整代码
2017/06/21 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
2019/09/23 Python
Python编写万花尺图案实例
2021/01/03 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
历史学专业毕业生求职信
2013/09/27 职场文书
《我的第一本书》教学反思
2014/02/15 职场文书
感恩寄语大全
2014/04/11 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
python游戏开发之pygame实现接球小游戏
2022/04/22 Python