nodejs個(gè)人博客開發(fā)第五步 分配數(shù)據(jù)
本文為大家分享了nodejs個(gè)人博客開發(fā)的分配數(shù)據(jù),具體內(nèi)容如下
使用回掉大坑進(jìn)行取數(shù)據(jù)
能看明白的就看,看不明白的手動(dòng)滑稽
/**
* 首頁控制器
*/
var router=express.Router();
/*每頁條數(shù)*/
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");
// 分類數(shù)據(jù)
categoryModel.getAllList(function(err,categoryList){
// 文章條數(shù)
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));
}
/*分配數(shù)據(jù)*/
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":"測(cè)試"});
//F.model("category").saveCate({"name":"測(cè)試1"},"id=4");
//F.model("category").delCate("id=4");
/*渲染模板*/
//res.render("home/index");
});
module.exports=router;
文章模型:
/**
* 文章模型文件
*/
module.exports={
/*獲取條數(shù)*/
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);
},
/*獲取分頁數(shù)據(jù)*/
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);
}
};
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 從零學(xué)習(xí)node.js之利用express搭建簡易論壇(七)
- node.js博客項(xiàng)目開發(fā)手記
- Node.js+jade抓取博客所有文章生成靜態(tài)html文件的實(shí)例
- 利用Vue.js+Node.js+MongoDB實(shí)現(xiàn)一個(gè)博客系統(tǒng)(附源碼)
- nodejs個(gè)人博客開發(fā)第七步?后臺(tái)登陸
- nodejs個(gè)人博客開發(fā)第六步 數(shù)據(jù)分頁
- nodejs個(gè)人博客開發(fā)第四步 數(shù)據(jù)模型
- nodejs個(gè)人博客開發(fā)第三步 載入頁面
- nodejs個(gè)人博客開發(fā)第二步 入口文件
- nodejs個(gè)人博客開發(fā)第一步 準(zhǔn)備工作
- node.js實(shí)現(xiàn)博客小爬蟲的實(shí)例代碼
- [將免費(fèi)進(jìn)行到底]在Amazon的一年免費(fèi)服務(wù)器上安裝Node.JS, NPM和OurJS博客
- node+koa2+mysql+bootstrap搭建一個(gè)前端論壇
相關(guān)文章
koa-router源碼學(xué)習(xí)小結(jié)
這篇文章主要介紹了koa-router源碼學(xué)習(xí)小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
nodejs使用http模塊發(fā)送get與post請(qǐng)求的方法示例
這篇文章主要介紹了nodejs使用http模塊發(fā)送get與post請(qǐng)求的方法,結(jié)合實(shí)例形式分析了nodejs基于http模塊實(shí)現(xiàn)發(fā)送get與post請(qǐng)求具體操作技巧,需要的朋友可以參考下2018-01-01
node+express+ejs使用模版引擎做的一個(gè)示例demo
本篇文章主要介紹了node+express+ejs使用模版引擎做的一個(gè)示例demo,具有一定參考價(jià)值,有興趣的小伙伴可以了解一下2017-09-09
nodejs操作mysql實(shí)現(xiàn)增刪改查的實(shí)例
下面小編就為大家?guī)硪黄猲odejs操作mysql實(shí)現(xiàn)增刪改查的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
node.js中的定時(shí)器nextTick()和setImmediate()區(qū)別分析
本文介紹了node.js中的定時(shí)器nextTick()和setImmediate()的區(qū)別分析,非常的不錯(cuò),這里推薦給大家。2014-11-11
詳解在node.js中require方法的加載規(guī)則
這篇文章主要介紹了詳解在node.js中require方法的加載規(guī)則,本文一步步解析了require加載規(guī)則,講述了核心的模塊,路徑形式的模塊,第三方模塊等,需要的朋友可以參考下2021-06-06
Node.js的HTTP模塊、URL模塊與supervisor工具介紹
這篇文章介紹了Node.js的HTTP模塊、URL模塊與supervisor工具,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06

