版权声明:本文为博主原创文章,未经博主允许不得转载。 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('/');
})
}
});
就这样一句代码就完成了删除功能了。