源码地址:https://github.com/RidingACodeToStray/Nodejs_blog
1)主要功能
分类的列表展示;
分类的修改;
分类的删除;
2)实现思路
从数据库中获取分类,使用模板渲染到页面上;
点击分类修改将该分类的id传到后台,在数据库中根据该id查找对应的分类信息到编辑页面,并对查找不到的信息进行处理,编辑提交需要对提交的分类名称在数据库中进行同名验证;
删除分类直接根据id从数据删除这条数据即可;
1.分类的列表展示:
//分类展示
router.get('/category',function(req,res){
//limit()限制获取的用户条数
//skip()忽略数据的查询
var page = Number(req.query.page) || 1;
var limit = 2;
var pages = 0;
Category.count().then(function(count){
//计算总页数向上取整
pages = Math.ceil(count / limit);
//page取值不能超过pages,去总页数和page中的最小值
page = Math.min(page,pages);
//page取值不能小于1
page = Math.max(page,1);
var skip = (page -1 ) * limit;
//从数据中读取所有的用户数据
Category.find().limit(limit).skip(skip).then(function(categories){
// console.log(users);
res.render('admin/category_index',{
userInfo:req.userInfo,
categories:categories,
page:page,
count:count,
pages:pages,
limit:limit
});
});
})
})
category_index.html
{% extends 'layout.html' %}
{% block main %}
<div class="a-userNav">
<span><a href="/">管理首页</a></span>
<span> / </span>
<span>分类列表</span>
</div>
<div style="padding-left: 50px;text-align: right;margin-right: 10px;">
<a href="/admin/category/add">添加分类</a>
</div>
<table class="a-userTable">
<thead>
<tr>
<th>ID</th>
<th>分类名称</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% 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 %}
</tbody>
</table>
{% include 'page.html' %}
{% endblock %}
2.分类的修改
//分类修改
router.get('/category/edit',function(req,res){
//获取要修改分类的信息,用表单展示出来
var id = req.query.id || '';
//获取要修改的分类信息
Category.findOne({
_id:id
}).then(function(category){
// console.log(category);
if(!category){
res.render('admin/error',{
userInfo:req.userInfo,
message:'分类信息不存在'
})
}else{
res.render('admin/category_edit',{
userInfo:req.userInfo,
category:category
});
}
})
})
views/admin/category_edit.html
{% extends 'layout.html' %}
{% block main %}
<div class="a-userNav">
<span><a href="/">管理首页</a></span>
<span> / </span>
<span>分类编辑 - {{category.name}}</span>
</div>
<form style="padding-left: 50px;margin-top: 20px;" method="post">
<div style="display: inline-block;">
<label for="name">分类名称:</label>
<input type="text" name="name" id="name" value="{{category.name}}">
</div>
<button type="submit" style="display: inline-block;">提交</button>
</form>
{% endblock %}
3.分类的删除
//分类删除
router.get('/category/delete',function(req,res){
var id = req.query.id || '';
Category.remove({
_id:id
}).then(function(){
res.render('admin/success',{
userInfo:req.userInfo,
message:'删除成功',
url:'/admin/category'
});
})
})