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打包工具整合到鼠标右键的方法
May 11 NodeJs
NodeJS学习笔记之Http模块
Jan 13 NodeJs
PHP和NodeJs开发的应用如何共用Session
Apr 16 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
详解nodejs 文本操作模块-fs模块(三)
Dec 22 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 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
世界第一个无线广播电台 KDKA
2021/03/01 无线电
PHP 日期加减的类,很不错
2009/10/10 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
js中匿名函数的N种写法
2010/09/08 Javascript
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python 异常处理总结
2016/10/18 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
python三引号如何输入
2020/07/06 Python
python调用win32接口进行截图的示例
2020/11/11 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
英国袜子店:Sock Shop
2017/01/11 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
七年级地理教学反思
2014/01/26 职场文书
就职演讲稿范文
2014/05/19 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
禁毒主题班会教案
2015/08/14 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers
Python实现打乒乓小游戏
2021/09/25 Python