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实战心得之eventproxy模块控制并发
Oct 27 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
Jan 12 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs入门教程二:创建一个简单应用示例
Apr 24 NodeJs
nodejs之get/post请求的几种方式小结
Jul 26 NodeJs
nodejs创建简易web服务器与文件读写的实例
Sep 07 NodeJs
使用npm安装最新版本nodejs
Jan 18 NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
nodejs各种姿势断点调试的方法
Jun 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
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
Python中if __name__ == &quot;__main__&quot;详细解释
2014/10/21 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
使用python实现对元素的长截图功能
2019/11/14 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
大学生社会实践方案
2014/05/11 职场文书
教师见习总结范文
2015/06/23 职场文书
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js