首页 > 解决方案 > 我正在尝试通过单击猫鼬的按钮来删除帖子。已经为此工作了很多

问题描述

所以这是我的代码。

这是我点击帖子后生成的页面:

<%- include('partials/header'); %> 
<form action="/delete" method="post">
    <h1 class="main-heading"> <%= postTitle %>  </h1>
    <p class="content-paragraph"> <%= postText %>  </p>
    <button class="btn btn-primary" name="delete" value=" <%= postTitle %> ">Delete Post</button>
</form>
<%- include('partials/footer'); %> 

这是执行此操作的代码:在这里,我通过参数检索了“_id”。

app.get('/posts/:postId', (req, res) => {

  const requestedPostId = req.params.postId;

  Post.findOne({_id: requestedPostId}, function(err, post) {
    res.render('post', {
      postTitle: post.title,
      postText: post.content
    });
  });
});

所以,起初,我试图通过它的“标题值”来删除一个帖子。不确定如何检索“删除”操作表单的“_id”。

像这样:

app.post('/delete', (req, res) => {

  const requestedTitle = req.body.delete;
  console.log(requestedTitle);

  Post.findOneAndRemove({title: requestedTitle}, function(err) {
    if (!err) {
      console.log('Item successfully removed');
      res.redirect('/');
    }
  });
});

我尝试将“删除操作”表单放在生成所有帖子的主页上。但这总是只会删除第一个帖子,无论我点击哪个帖子。

<%- include('partials/header'); %> 
<h1 class="main-heading">HOME</h1>
<p class="content-paragraph"> <%= startingContent %> </p>
<% posts.forEach(elem => { %>
    <h1 class="main-heading"> <%=  elem.title %> </h1>
    <p class="content-paragraph"> <%= elem.content.substring(0, 150) + '...'  %></p> 
    <a href='/posts/<%= elem._id %> '>Read More</a>
<% }); %>
<%- include('partials/footer'); %> 

在这一点上,我被卡住了,不知道如何继续。

谢谢!

标签: javascriptnode.jsmongodbexpressmongoose

解决方案


推荐阅读