未调用删除获取

我正在从事一个项目,该项目涉及将输入文本值用于发送到服务器以访问数据库中的信息。我的问题是根本没有调用我的DELETE函数。我认为问题出在我使用Express的路由中。

这些是客户端文件中的功能及其提取

function deleteItem() {
    (async () => {
        let itemName = document.getElementById("itemname").value;
        const newURL = url + "/menus/sylvan/"+itemName; 
        alert(newURL)
        const resp = await fetch(newURL, {
            method:"DELETE"
        });     
        const j = await resp.json();

        if (j["result"] !== "error") {
        document.getElementById("output").innerHTML = "401: <b>" + itemName + " deleted.</b>";
        } else {
        document.getElementById("output").innerHTML = "400: " + itemName + " not found.</b>";
        }       
    })();
}

function readItem() {
(async () => {
    let itemName = document.getElementById("itemname").value;
    const newURL = url + "/menus/sylvan/"+itemName; // used to be ?name=" + counterName; -- (2)
    const resp = await fetch(newURL,{
        method:"GET"
    });
    const j = await resp.json();
    const str = j["name"]+"|"+j["cost"]+"|"+j["descr"]+"|"; 
    if (j["result"] !== "error") {
        document.getElementById("output").innerHTML = "201: <b>" +str + " found.</b>";
    } else {
        document.getElementById("output").innerHTML = "200: " +  itemName +" not found.</b>";
    }  
})();

}

这些是服务器请求的路由:

this.router.get("/menus/:rest/:item",this.getItem.bind(this))
this.router.delete("/menus/:rest/:item",this.deleteItem.bind(this))

其中getItem()和deleteItem()都是访问数据库的不言自明的函数。如您所见,它们的GET和DELETE都使用相同的路由地址,但是我确保一个函数必须是DELETE请求,而另一个函数在所获取的方法主体中是GET,我是否缺少某些东西?

评论