【问题标题】:how do i delete particular item from model with mongoose in my todolist app如何在我的 todolist 应用程序中使用猫鼬从模型中删除特定项目
【发布时间】:2021-01-25 10:24:19
【问题描述】:

我想在按下删除按钮时删除一个项目。我如何删除该特定项目是他们在按下按钮时借助按钮将值传递给服务器端的任何方法 这是 list.ejs 代码:

<%for(let i=0;i<itemslist.length;i++){%>
  <li> <%=itemslist[i].item%> </li>
  <% var ind=i%>
  <form action="/delete" method="POST"><button value="">Delete</button></form>  
  <form action="/edit" method="POST"><button onclick="editfunc()" >Edit</button></form>      
<%}%>  

这是我的服务器端代码 app.js

 app.post("/delete",function(req,res){
    Item.deleteOne({},function())
    res.redirect("/");
});

【问题讨论】:

    标签: javascript node.js mongodb mongoose ejs


    【解决方案1】:

    Delete one 需要一个查询,而您传入​​的是一个空对象。


    修改您的 ejs 以将当前项作为数据属性绑定到当前列表项,该列表项是一个表单。

    <%for(let i=0;i<itemslist.length;i++){%>
      <li> <%=itemslist[i].item%> </li>
      <% var ind=i%>
      <form action="/delete" method="POST" class="delete-item" data-item=`${itemslist[i].item}`><button value="">Delete</button></form>  
      <form action="/edit" method="POST"><button onclick="editfunc()" >Edit</button></form>      
    <%}%> 
    

    在您的前端脚本中添加一个事件处理程序来监听删除表单的提交事件,这里从数据属性中提取项目并将其发送到您的 API -

    $(document).on('submit', '.delete-item', function(event) {
        event.preventDefault();
        
        var item = JSON.parse($(this).attr('data-item'));
        var successCb = function(data) {
            console.log('Deleted item - ', item);
        };
        
        var errorCb = function(error) {
            console.error(error && error.responseJSON);
        };
        
        $.post('/delete', {
            item
        }).done(successCb)
        .fail(errorCb);
        
    });
    

    在您的服务器端,使用 mongoose 函数 deleteOne 删除特定项目 -

    app.post("/delete", async (req,res) => {
        try {
            const { item } = req.body;
            await Item.deleteOne({ item });
            res.redirect("/");
        } catch (err) {
            console.error(err);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 2013-11-07
      • 1970-01-01
      • 2017-12-23
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      • 2012-07-08
      相关资源
      最近更新 更多