NodeJS博客实战15_博客分类的添加

源码地址:https://github.com/RidingACodeToStray/Nodejs_blog

主要功能:

1)在后台管理页面添加分类管理页面

2)点击添加分类可以跳转到表单页面

3)填写分类添加提交后台对分类进行非空验证

4)将分类存入mongo数据库

5)添加成功或者失败则跳转到成功或失败页面并提供跳转连接

实现思路:

1)首先要定义分类category的数据库结构,定义在schemas文件夹下命名为catgory.js,只有一个字段name;

2)在Model文件夹下创建category的模型类用于操作数据库

3)前端构建好category页面,添加成功页面,和失败页面

4)在后台router/admin.js对分类进行验证和保存

看代码:

router/admin.js:

//分类管理
router.get('/category',function(req,res){
	res.render('admin/category_index',{
		userInfo:req.userInfo
	})
})
//分类添加
router.get('/category/add',function(req,res){
	res.render('admin/category_add',{
		userInfo:req.userInfo
	})
})
//分类的保存
router.post('/category/add',function(req,res){
	var name = req.body.name || '';
	if(name == ''){
		res.render('admin/error',{
			userInfo:req.userInfo,
			message:"名称不能为空"
		});
		return;
	}
	//数据库中是否已经存在同名名称
	Category.findOne({
		name:name
	}).then(function(res){
		if(res){
			res.render('admin/error',{
				userInfo:req.userInfo,
				message:'分类已经存在'
			})
			return Promise.reject(); //不在执行then方法
		}else{
			//若数据库中不存在该分类
			return new Category({
				name:name
			}).save();
		}
	}).then(function(rs){
		res.render('admin/success',{
			userInfo:req.userInfo,
			message:'分类保存成功',
			url:'/admin/category'
		})
	})
})

views/admin/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>
			<th>是否是管理员</th>
		</tr>
	</thead>
	<tbody>
<!-- 		{% 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 %} -->
	</tbody>
	</table>
	{% include 'page.html' %}
{% endblock %}

views/admin/category_add.html:

{% extends 'layout.html' %}

{% block main %}
	<div class="a-userNav">
		<span><a href="/">管理首页</a></span>
		<span> / </span>
		<span>分类添加</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">
		</div>
		<button type="submit" style="display: inline-block;">提交</button>
	</form>
{% endblock %}

views/admin/success.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;margin-top: 20px;">
		<p>成功提示:<span>{{message}}</span></p>
		<div>
			<a href="{{url}}">点击跳转</a>
		</div>
	</div>
{% endblock %}

views/adminerror.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;margin-top: 20px;">
		<p>错误提示:<span>{{message}}</span></p>
		<div>
			{% if url %}
			<a href="{{url}}">点击跳转</a>
			{% else %}
			<a href="javascript:window.history.back()">返回上一步</a>
			{% endif %}
		</div>
	</div>
{% endblock %}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值