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实现Websocket的数据接收与发送
Nov 19 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
Nodejs多站点切换Htpps协议详解及简单实例
Feb 23 NodeJs
NodeJS学习笔记之Module的简介
Mar 24 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
nodejs实现大文件(在线视频)的读取
Oct 16 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
Nodejs异步流程框架async的方法
Jun 07 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生成静态页
2006/11/25 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
劣质的PHP代码简化
2010/02/08 PHP
PHP自动识别字符集并完成转码详解
2013/08/02 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
node.js中watch机制详解
2014/11/17 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
Python语言异常处理测试过程解析
2020/01/08 Python
Python requests模块cookie实例解析
2020/04/14 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
预备党员表决心书
2014/03/11 职场文书
四风自我剖析材料思想汇报
2014/10/01 职场文书