Node.js博客系统--17.后台管理-博客分类的修改和删除

首先加上分类的分页,和用户管理一样

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">&larr;</span> 上一页</a></li>

        <li>
            一共{{count}}条数据,每页显示{{limit}}条数据,一共{{pages}}页,当前第{{page}}页
        </li>
        <li class="next"><a href="/admin/category?page={{page + 1}}">下一页 <span aria-hidden="true">&rarr;</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"
        });
    });
});

现在写删除的逻辑

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值