【问题标题】:Axios MySql DELETE/UPDATE not working or providing errorAxios MySql DELETE/UPDATE 不工作或提供错误
【发布时间】:2021-06-16 02:34:51
【问题描述】:

我正在尝试使用 Axios 和 Node.Js 在 MySql 表中发出删除请求,但我不确定出了什么问题。尽管错误捕获 console.log 我没有在控制台中收到任何错误。这里有什么问题? MySql 表适用于 INSERT、SELECT 和 GET。

这是我调用请求的地方:

let para1 = document.getElementById("para1").innerHTML;
let para2 = document.getElementById("para2").innerHTML;
let para3 = document.getElementById("para3").innerHTML;
Axios.delete('http://localhost:3001/delete', {col1: para1, col2: para2, col3: para3}) 
                .then(()=>{});         
window.location.reload();

就 Axios/Node 后端代码而言,这是正在执行的代码:

app.delete('/delete', (req, res)=>{
    const para1 = req.body.col1;
    const para2 = req.body.col2;
    const para3 = req.body.col3;
    db.query('DELETE FROM exampleTable WHERE col1 = ? AND col2 = ? AND col3 = ?', [para1, para2, para3], (err, result)=>{if(err){console.log(err);}else{console.log("Done!");}});
})

【问题讨论】:

    标签: javascript mysql node.js reactjs axios


    【解决方案1】:

    DELETE 请求通常不应有请求正文(如GET)。很有可能是什么东西剥去了身体。

    不要依赖这个。 DELETE 请求应该删除的唯一内容是 URL 中标识的 thing。 “删除/delete”从来没有意义,因为在“删除/delete”之后,/delete 资源应该不再存在。我希望这不会太令人困惑。

    换句话说,这是有道理的:

    DELETE /article/123
    DELETE /folder/pictures
    

    但这不是:

    DELETE /delete
    

    您基本上是在构建一个 RPC 样式的 API,所以只需使用 POST

    【讨论】:

    • 我将 axios 请求从 app.delete 更改为 app.post 并没有任何改变。
    • 那么您需要提供更多信息。您还应该处理来自db.query 的错误,现在看来您只是忽略了结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    相关资源
    最近更新 更多