NodeJS博客实战16_博客分类的修改和删除

源码地址: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'
				});
	})
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值