搭建个人博客 ( 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('/');
})
}
});
就这样一句代码就完成了删除功能了。