Javascript 节点中的空数组

Javascript 节点中的空数组,javascript,node.js,ejs,Javascript,Node.js,Ejs,我在节点中构建应用程序待办事项列表,我一直在想当我按clear清空所有任务时该怎么做 我想做的是,当我想按下清除按钮时,我想清空数组,这样它们就会被清除 这是我的密码: 模板List.ejs <%- include("header") -%> <div id="heading" class="box"> <h1><%= listTitle %></h1> </div

我在节点中构建应用程序待办事项列表,我一直在想当我按clear清空所有任务时该怎么做

我想做的是,当我想按下清除按钮时,我想清空数组,这样它们就会被清除

这是我的密码:

模板
List.ejs

<%- include("header") -%>

<div id="heading" class="box">
  <h1><%= listTitle %></h1>
</div>
<div class="box">
  <% for(let i = 0; i < newListItem.length; i++ ){ %>
  <div class="item">
    <input type="checkbox" />
    <p><%= newListItem[i] %></p>
  </div>
  <% } %>
  <form class="item" action="/" method="POST">
    <input
      type="text"
      name="newItem"
      placeholder="New Item"
      autocomplete="off"
      required
    />
    <!-- prettier-ignore -->
    <button class="btn" name="list" type="submit" value=<%= listTitle %>  >+</button>
    
  </form>
  <form action="/delete" method="DELETE">
    <button name="clearing" type="submit" class="btn2">Clear</button>
  </form>
  
</div>
<%- include("footer") -%>

post
更改为
delete

app.delete("/delete", (req,res) => {
    items = [];
    res.redirect("/");
})
试试这个:

app.delete("/delete", (req,res) => {
 let clearing = req.body.clear;
    if(clearing){
      items.splice(0,items.length)
      res.redirect("/");
    }
})

有关更多参考信息,您可以在此处查看其他方法:

将您的表单操作置于“发布”位置,以显示删除按钮。Html表单方法只接受两个值GET或POST。如果要使用DELETE动词,就必须使用ajax

对于您的情况,如果您将form方法更改为POST,应该可以

<form action="/delete" method="POST">
<button name="clearing" type="submit" class="btn2">Clear</button>

清楚的
app.get(“/delete”,(请求、回复)=>{
res.redirect(“/”);
})
app.post(“/delete)”,(请求、回复)=>{
项目.拼接(0,项目.长度)
res.redirect(“/”);
})
清楚的

多亏了你几次尝试后的帮助,它才起作用。谢谢大家。

Change List.ejs表单提交至:

<form action="#!" onsubmit="handleClick()">
    <button name="clearing" type="submit" class="btn2">Clear</button>
</form>
最后,在App.js中删除App.post('/delete')和App.get('/delete'),改为写入:

app.delete('/delete', (req, res)=>{
    items = [];
    res.send({
        status: 200,
        message: 'Successfully Deleted/Cleared'});
  });

你能描述一下问题的详细信息吗?
array.length=0
就行了如果你看我的代码,我想做的就是当我按下“清除任务”按钮时。你没有通过请求正文吗?你能试着注释掉
if
条件并再试一次吗?请参考我的编辑,如果有效,请检查如何从模板中传递请求正文。我尝试了,但没有成功,可能是.ejs中的某个内容或表单的位置?更改为post,但路由正在加载app.get(“/delete)”,(req,res)=>{res redirect(/”);})app.delete(“/delete”,(req,res)=>{let clearing=req.body.clear;if(clearing){items.splice(0,items.length)res.redirect(“/”;}})
<form action="#!" onsubmit="handleClick()">
    <button name="clearing" type="submit" class="btn2">Clear</button>
</form>
function handleClick(){
    fetch('/delete',{
        method: 'delete'
      }).then(res => {
           if (res.ok) return res.json()
      }).then(data => {
           console.log(data.message);
           window.location.reload();
      })
   })
app.delete('/delete', (req, res)=>{
    items = [];
    res.send({
        status: 200,
        message: 'Successfully Deleted/Cleared'});
  });