1.在main.js中增加路由,并修改如下
var express = require('express');
var router =express.Router();
var Category=require('../models/Category');//引入分类信息
var Content = require('../models/Content');
var data;
//处理通用的数据
router.use(function (req,res,next) {
data={
userInfo:req.userInfo,
catagories:[]
}
Category.find().then(function (categories) {
data.categories=categories;
next();
});
});
/*
* 首页
* */
router.get('/',function(req,res,next) {
//一步用来获取分类,第二步用来获取种类和获取条数,以及后面的具体的内容列表
data.category=[];
data.count=0;
data.category=req.query.category||'';//前台内容分类的展示,获取信息
data.page=Number(req.query.page||1);
data.limit=10;
data.pages=0;
data.contents=[];
var where ={};
if(data.category){
where.category=data.category
}
Content.where(where).count().then(function (count) {
data.count=count;
//计算总页数
data.pages=Math.ceil(data.count/data.limit);//向上取整
//取值不能超过pages
data.page=Math.min(data.page,data.pages);
//取值不能小于1
data.page=Math.max(data.page,1);
var skip = (data.page-1)*data.limit;
//增加一个查询条件
return Content.find().where(where).sort({_id:-1}).limit(data.limit).skip(skip).populate(['category','user']).sort({
addTime:-1
});
}).then(function (contents) {
data.contents=contents;
res.render('main/index',data);//渲染当前views下面的index.html页面
})
});
router.get('/view',function (req,res) {
var contenId=req.query.contentid||'';
Content.findOne({
_id:contenId
}).then(function (content) {
data.content=content;
res.render('main/view',data);
});
});
module.exports = router;
2.在main文件夹中增加一个模板页面layout.html,并修改index.html页面,和增加view.html
{%extends 'layout.html'%}
{%block content%}
<div class="listBox">
<h1>{{content.title}}</h1>
<p class="colDefault">
作者:<span class="colInfo">{{content.user.username}}</span> -
时间:<span class="colInfo">{{content.addTime|date('Y-m-d H:i:s',-(8*60))}}</span> -
阅读:<span class="colInfo">{{content.views}}</span> -
评论:<span class="colInfo">10</span>
</p>
<dfn>
{{content.content}}
</dfn>
</div>
{%endblock%}
3.问题:阅读数量怎么实现增加?
解决方法:每当用户访问详情页,阅读量增加1,在main.js中修改
router.get('/view',function (req,res) {
var contenId=req.query.contentid||'';
Content.findOne({
_id:contenId
}).then(function (content) {
data.content=content;
content.view++; //修改这里
content.save();
res.render('main/view',data);
});
});