【问题标题】:req.params from app.delete is empty, using express, axios, in reactapp.delete 中的 req.params 为空,使用 express,axios,在反应中
【发布时间】:2018-07-24 14:20:48
【问题描述】:

使用 app.delete 时如何获取 req.params?

这是我在 handleSubmit 中的部分代码:

axios.delete("/api/emails/delete/", {params: {email: email}})

这是我在服务器上的 API 路由:

app.delete("/api/emails/delete/", function(req, res) {
db.Email.destroy({
  where: {
    email: req.params.email
  }
})
.then(function(dbEmail) {
  console.log(req.params);
  res.json(dbEmail);
});

});

如何获取 req.params?

谢谢

【问题讨论】:

    标签: reactjs express sequelize.js axios


    【解决方案1】:

    第一种方式:

    我认为你需要改变:

    axios.delete("/api/emails/delete/", { params : {email: email}})
    

    axios.delete("/api/emails/delete/", { data : {email: email}})
    

    原因:

    app.delete("/api/emails/delete/", function(req, res) { // <-- No params defined in roure
    

    第二种方式:

    保持:

    axios.delete("/api/emails/delete/", { params : {email: email}})
    

    并在快递方面更改:

    app.delete("/api/emails/delete/:email", // <-- By this you can access req.params.email
    

    【讨论】:

    • 不幸的是,这些选项都不适合我。我最喜欢第二种方式,所以我首先尝试了它,它的作用是设置email = :email
    • 它应该可以工作,在此之后你必须面临另一个问题,请检查双方的控制台反应和表达,是的,@SierraKilo,如果你作为参数传递,那么它会将值附加到您的网址,更多详情请阅读:expressjs.com/en/guide/routing.html
    • 没有 /:emails email=null 字面意思是 email =:email 否则一切正常。
    猜你喜欢
    • 2021-10-02
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2014-01-28
    • 2019-09-01
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多