node+express+mongoDB搭建个人博客 (五)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YIDBoy/article/details/54348274

搭建个人博客 ( YIDBlog )

上一篇文章中我们已经完成了文章的发表,接下来我们来实现对文章的编辑和删除。

1.对文章的编辑,修改detail.ejs,代码如下:

<%- include header %>
<p>
<span><a class="edit" href="/edit/<%= post.author %>/<%= post.title %>?id=<%=post._id%>">编辑</a></span>
    <span><a class="edit" href="/delete?id=<%= post._id%>">删除</a></span>
</p>
<p><h2><a href="#"><%= post.title %></a></h2></p>
<p class="info">
作者:<a href="#"><%= post.author %></a> |
日期:<%= post.publishTime %> |
浏览:<%= post.pv%>
</p>
<p><%- post.article %></p>
<%if(post.postImg) { %>
    <img src="/images/<%= post.postImg%>" alt="" style="width:100%;height:100%;">
<% } %>
<%- include footer %>

2.创建edit.ejs文件,代码如下:

<%- include header %>

<form method="post">
    <div class="form-group">
        <label for="name">标题:</label>
        <input type="text" class="form-control" name="title" value="<%= post.title %>" />
    </div>
    <div class="form-group">
        <label for="name">文章</label>
        <textarea class="form-control" name="article" rows="8"><%= post.article %></textarea>
    </div>
    <hr />
    <input type="hidden" value="<%= post._id%>" name="id" />
    <input type="submit" value="保存修改" class="btn btn-default"/>
</form>
<%- include footer %>

3.接着修改index.js,代码如下:

 //编辑文件
    app.get('/edit/:author/:title',checkLogin, function (req, res) {
        var id = req.query.id;
        Post.findById(id, function (err, data) {
            //console.log(data);
            if (err) {
                req.flash('error', err);
                return res.redirect('back');
            }
            res.render('edit', {
                title: '编辑',
                post: data,
                user: req.session.user,
                success: req.flash('success').toString(),
                error: req.flash('error').toString()
            });
        });
    });
     app.post("/edit/:author/:title",checkLogin,function(req,res,next){
        var post = {
            id:req.body.id,
            author:req.session.user,
            title:req.body.title,
            article:req.body.article
        };

        console.log(post);

        //markdow转格式文章
        post.article = markdown.toHTML(post.article);


        Post.update({"_id":post.id},{$set:{title:post.title,article:post.article}},function(err){
            if(err){
                console.log(err);
                return;
            }
            console.log("更新成功");
            res.redirect("/");
        });
    });

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

4.接着是删除功能,修改index.js,代码如下:

    //删除文件
    app.get('/delete',checkLogin,function(req,res){
        var id = req.query.id;
        console.log(id);
        if(id && id!=''){
            Post.findByIdAndRemove(id,function(err){
                if(err){
                    console.log(err);
                    req.flash("success","删除文章失败");
                    return req.redirect('/')
                }
                req.flash("success","删除文章成功");
                res.redirect('/');
            })
        }
    });

就这样一句代码就完成了删除功能了。

猜你喜欢

转载自blog.csdn.net/YIDBoy/article/details/54348274