1.需求:在导航条点击【用户管理】时,直接展示所有用户的信息
2.在admin.js中增加用户管理路由
var User=require('../models/User');
//增加一个用户管理路由
router.get('/user',function (req,res) {
//
//从数据库中读取所有的用户数据
//
User.find().then(function (users) {
res.render('admin/user_index',{
userInfo:req.userInfo,
users:users
})
});
})
3.在view/admin中新增一个user_index.html页面,展示用户的信息
{%extends 'layout.html' %}
{% block main%}
<ol class="breadcrumb">
<li><a href="/">管理首页</a></li>
<li><span>用户列表</span></a></li>
</ol>
<h3>用户列表</h3>
<table class="table table-hover table-striped">
<tr>
<th>ID</th>
<th>用户名</th>
<th>密码</th>
<th>是否是管理员</th>
</tr>
{% for user in users%}
<tr>
<td>{{user._id.toString()}}</td>
<td>{{user.username}}</td>
<td>{{user.password}}</td>
<td>
{%if user.isAdmin%}
是
{%endif%}
</td>
</tr>
{% endfor %}
</table>
{% endblock %}
4.实现分页,需要借用到数据库的一个limit()操作,限制获取的数据条数,在admin.js中
//增加一个用户管理路由
router.get('/user',function (req,res) {
//
//从数据库中读取所有的用户数据
//limit(Number):限制获取的数据条数
//skip(2):忽略数据的条数
//
//每页显示2条,
// 1:1-2 skip:0;->当前页1*limit
// 2:3-4 skip:2
//
var page = Number(req.query.page || 1);//实际过程中需要判定page是否为数值
//对page的取值进行一个限制
var limit =2;
var pages=0;
//获取数据库中的数据记录的总条数
User.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;
User.find().limit(2).skip(skip).then(function (users) {
res.render('admin/user_index',{
userInfo:req.userInfo,
users:users,
count:count,
page:page,//传递给模板,展示当前页是哪一页
pages:pages,
limit:limit
})
});
});
});
5.在user-index.html中加入上下页动态信息
<nav>
<ul class="pager">
<li class="previous"><a href="/admin/user?page={{page-1}}"><span aria-hidden="true">←</span> 上一页</a></li>
<li>
一共有 {{count}} 数据,每页显示 {{limit}} 数据,一共 {{pages}} 页,当前第 {{page}} 页
</li>
<li class="next"><a href="/admin/user?page={{page+1}}">下一页<span aria-hidden="true">→</span></a></li>
</ul>
</nav>
6.我们可以将uder_index.html中的上下页动态信息封装起来,将这段代码放到一个新的page.html中
在user_index.html中包含他,可以在任何页面中引入分页page.html
【注意】必须在引用该page.html中包含count,limit,pages,page这四个数据
<!--把另外一个页面通过引用的形式,包含子集的方式包含进来-->
{%include 'page.html'%}