首先加上分类的分页,和用户管理一样
category.html这样写
{% extends 'layout.html' %} {% block main %}
<ol class="breadcrumb">
<li><a href="#">管理首页</a></li>
<li>分类列表</li>
</ol>
<h3>分类列表</h3>
<table class="table table-hover table-striped">
<tr>
<th>ID</th>
<th>分类名称</th>
<th>操作</th>
</tr>
{% for category in categories %}
<tr>
<td>{{category._id.toString()}}</td>
<td>{{category.name}}</td>
<td>
<a href='/admin/category/edit?id={{category._id.toString()}}'>编辑</a>
<a href='/admin/category/delete?id={{category._id.toString()}}'>删除</a>
</td>
</tr>
{% endfor %}
</table>
<nav>
<ul class="pager">
<li class="previous"><a href="/admin/category?page={{page - 1}}"><span aria-hidden="true">←</span> 上一页</a></li>
<li>
一共{{count}}条数据,每页显示{{limit}}条数据,一共{{pages}}页,当前第{{page}}页
</li>
<li class="next"><a href="/admin/category?page={{page + 1}}">下一页 <span aria-hidden="true">→</span></a></li>
</ul>
</nav>
{% endblock %}
现在编写编辑功能
编辑界面
分类的修改保存逻辑
/**
* 分类的修改保存
*/
router.post('/category/edit', function(req, res) {
// 获取要修改的分类的信息,并且用表单的形式展现出来
var id = req.query.id || '';
// 获取post提交过来的名称
var name = req.body.name || '';
Category.findOne({ _id: id }).then(function(category) {
if (!category) {
res.render("admin/error", {
userinfo: req.userInfo,
message: "分类信息不存在"
});
return Promise.reject();
} else {
// 当用户没有做任何修改提交的时候
if (name == category.name) {
res.render('admin/success', {
userinfo: req.userInfo,
message: '修改成功',
url: '/admin/category'
});
return Promise.reject();
} else {
// 要修改的分类名称是否已经存在数据库中
return Category.findOne({
_id: { $ne: id },
name: name
});
}
}
}).then(function(sameCategory) {
if (sameCategory) {
res.render("admin/error", {
userinfo: req.userInfo,
message: "数据库中已存在同名分类",
});
return Promise.reject();
} else {
return Category.update({
_id: id
}, {
name: name
})
}
}).then(function() {
res.render("admin/success", {
userinfo: req.userInfo,
message: "修改成功",
url: "/admin/category"
});
});
});
现在写删除的逻辑