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 中模拟实现 emmiter 自定义事件
Feb 22 NodeJs
Nodejs学习item【入门手上】
May 05 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
nodejs之koa2请求示例(GET,POST)
Aug 07 NodeJs
NodeJs操作MongoDB教程之分页功能以及常见问题
Apr 09 NodeJs
基于nodejs的微信JS-SDK简单应用实现
May 21 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 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
我的论坛源代码(八)
2006/10/09 PHP
一个简单实现多条件查询的例子
2006/10/09 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
Display SQL Server Version Information
2007/06/21 Javascript
js模拟弹出效果代码修正版
2008/08/07 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
python tkinter基本属性详解
2019/09/16 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
Python实现壁纸下载与轮换
2020/10/19 Python
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
把富文本的回车转为br标签
2019/08/09 HTML / CSS
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
工程地质勘察专业大学生求职信
2013/10/13 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
股东合作协议书
2014/09/12 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
党员带头倡议书
2015/04/29 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
JavaScript实例 ODO List分析
2022/01/22 Javascript