1.在表结构contents.js中增加字段
//关联字段-用户id
user:{
//类型
type:mongoose.Schema.Types.ObjectId,
//引用,引用另外一张表的模型
ref:'User'
},
//添加时间
addTime:{
type:Date,
default:new Date()
},
//阅读量
views:{
type:Number,
default:0
},
2.由于,相对于之前的页面中增加了另一个表,所以,我们在内容首页时,需要populate一个表。在admin.js内容首页中
/*
* 内容首页
* */
router.get('/content',function (req,res) {
var page = Number(req.query.page || 1);//实际过程中需要判定page是否为数值
//对page的取值进行一个限制
var limit =10;
var pages=0;
//获取数据库中的数据记录的总条数
Content.count().then(function (count) {
//计算总页数
pages=Math.ceil(count/limit);//向上取整
//取值不能超过pages
page=Math.min(page,pages);
//取值不能小于1
page=Math.max(page,1);
var skip = (page-1)*limit;
/*sort()
* 1:升序
* -1:降序
*
* populate()关联的就是另外一个数据表
* */
Content.find().sort({_id:-1}).limit(limit).skip(skip).populate(['category','user']).then(function (contents) {
res.render('admin/content_index',{
userInfo:req.userInfo,
contents:contents,
count:count,
page:page,
pages:pages,
limit:limit
})
});
});
});
3.在content)index.html页面中同样也改变
<table class="table table-hover table-striped">
<tr>
<th>ID</th>
<th>分类名称</th>
<th>标题</th>
<th>作者</th>
<th>添加时间</th>
<th>阅读量</th>
<th>操作</th>
</tr>
{% for content in contents%}
<tr>
<td>{{content._id.toString()}}</td>
<td>{{content.category.name}}</td>
<td>{{content.title}}</td>
<td>{{content.user.username}}</td>
<!--日期对象这样写有问题{{content.addTime}},增加一个过滤器,第二个参数填写格式,第三参数以分钟为值的偏移量-->
<td>{{content.addTime|date('Y-m-d H:i:s',-(8*60))}}</td>
<td>{{content.views}}</td>
<td>
<a href="/admin/content/edit?id={{content._id.toString()}}">修改</a> |
<a href="/admin/content/delete?id={{content._id.toString()}}">删除</a>
</td>
</tr>
{% endfor %}
</table>
4.