Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何向button Node.js添加删除操作_Html_Css_Node.js_Ejs_Crud - Fatal编程技术网

Html 如何向button Node.js添加删除操作

Html 如何向button Node.js添加删除操作,html,css,node.js,ejs,crud,Html,Css,Node.js,Ejs,Crud,我想向一个按钮添加一个删除功能,该按钮是卡的一部分,卡被封装在一个表单中,这是我所能得到的: <form class="form-events" action="/delete" method="post"> <% events.forEach( function (event) { %> <div class="card col-lg-3" style=&qu

我想向一个按钮添加一个删除功能,该按钮是卡的一部分,卡被封装在一个表单中,这是我所能得到的:

<form class="form-events" action="/delete" method="post">
  <% events.forEach( function (event) { %>
    
      <div class="card col-lg-3" style="width: 18rem;">

          <img class="card-img-top">
          <div class="card-body">
          <h5 class="card-title"><%= event.title %></h5>
          <p class="card-text"><%= event.description %></p>
          <p class="card-text"><%= event.date %> </p>
          <p class="card-text"><%= event.capacity %></p>
          <a href="#" class="btn btn-primary">Update</a>
          <button onclick="this.form.submit()" value="<%= event._id %> " name="deletebtn" class="btn btn-danger">Delete</button>
        </div>
      </div>
   
  <% }); %>
</form>
当我按下“删除”按钮时,出现此错误:


好的,这就是我解决问题的方法。我不确定这是否正确,但它是有效的

表单管理ejs

// Delete an event
app.post("/delete", function (req, res) {
  const deletedItemId = req.body.deletebtn;
  Event.findByIdAndRemove(deletedItemId, function (err) {
    if (!err) {
      console.log("Successfully deleted");
      res.redirect("/admin");
    } else {
      console.log(err);
    }
  });
});
现在它在数据库中运行得很好,但我在谷歌上搜索了大部分东西,看看它们在哪里可以使用

<% events.forEach( function (event) { %>
      <form class="form-events" action="/delete" method="post">

        <div class="card col-lg-3" style="width: 18rem;">

          <img class="card-img-top">
          <div class="card-body">

            <h5 class="card-title"><%= event.title %></h5>
            <p class="card-text"><%= event.description %></p>
            <p class="card-text"><%= event.date %> </p>
            <p class="card-text"><%= event.capacity %></p>

            <a href="/create_event" class="btn btn-primary">Update</a>
            <button name="deleteBtn" value="<%=event._id%>" type="submit" class="btn btn-danger">Delete</button>
          </div>
        </div>

        <% }); %>
      </form>
路由的
/**/
app.delete(“delete/:id”),函数()
/*表格*/
删除

我试过了,但又遇到了一些错误,回到了原来的版本,我真的不理解整个app.post,app.delete,因为你也使用了action/delete,然后你可以用mongoose删除它,我也不确定,但是对于HTML中的form方法,据说你只能使用post和put,这让我更加困惑……

首先,我建议使用
collection.findonebyianddelete()
。其次,错误很明显是
事件。_id
的类型不正确。您是否可以将
事件的控制台输出包括在内。\u id
传递到请求时的样子。另外,您是使用Mongoose定义模式还是仅使用Node.js定义端点?调试时,页面源是否具有预期的ID值?在浏览器调试工具的POST请求中,是否包含预期的ID值?调试服务器端代码时,
deletedetimid
是否具有您期望的值?在调试过程中,观察逻辑的每一个步骤来确定发生意外事件的具体位置是很重要的。我在控制台中添加了一条消息,至于调试,我对这方面还很陌生,所以不知道怎么做。
<% events.forEach( function (event) { %>
      <form class="form-events" action="/delete" method="post">

        <div class="card col-lg-3" style="width: 18rem;">

          <img class="card-img-top">
          <div class="card-body">

            <h5 class="card-title"><%= event.title %></h5>
            <p class="card-text"><%= event.description %></p>
            <p class="card-text"><%= event.date %> </p>
            <p class="card-text"><%= event.capacity %></p>

            <a href="/create_event" class="btn btn-primary">Update</a>
            <button name="deleteBtn" value="<%=event._id%>" type="submit" class="btn btn-danger">Delete</button>
          </div>
        </div>

        <% }); %>
      </form>
app.post("/delete", function (req, res) {

  const deletedItemId = req.body.deleteBtn;

  Event.findByIdAndDelete(deletedItemId, function (err) {
    if (!err) {
      console.log("Successfully deleted");
      res.redirect("/admin");
    } else {
      console.log(err);
    }
  });
});
/*for the route */
app.delete(“delete/:id”), function() 

/*for the form */
<form method="POST" action="/delete/<%= event._id%>?_method=DELETE">
<button type="submit">Delete</button>
</form>