Express.js 中删除 req.body 时的空对象

Posted

技术标签:

【中文标题】Express.js 中删除 req.body 时的空对象【英文标题】:Empty object on delete req.body in Express.js 【发布时间】:2019-01-18 14:05:56 【问题描述】:

我正在尝试删除服务器端 (Express.js) 上的某些内容。因此,我需要从前端(React with Redux)发送要在后端使用的数据,以便从数据库中删除某些内容。所以我的 redux 操作看起来像这样:

export const sendRemoved = (removedDocId) => async dispatch => 
    const res = await axios.delete('/api/deletedoc', removedDocId);

如您所见,我想发送名为 removedDocId 的对象(其中包含一些宝贵的数据)。然后在后端我这样做:

app.delete('/api/deletedoc', (req, res) => 
    console.log(req.body)
)

我希望我的数据包含在 req.body 中,但我得到的是空对象。如果我对 post 方法(在前端和后端)做同样的事情,那么一切都会奏效。是否有另一种使用删除方法将数据从前端传递到后端的方法? 谢谢!

【问题讨论】:

【参考方案1】:

您可以在选项对象的data 属性中使用它,而不是只使用removedDocId 字符串作为第二个参数。

export const sendRemoved = (removedDocId) => async dispatch => 
  const res = await axios.delete('/api/deletedoc',  data:  removedDocId  );

【讨论】:

这对我有帮助,谢谢。我只使用 removeDocId

以上是关于Express.js 中删除 req.body 时的空对象的主要内容,如果未能解决你的问题,请参考以下文章

express.js 中 req.body 的目的是啥?

express.js get 方法无法获取 req.body 值

Express js req.body 返回空

Express.js req.body 未定义

用户在express js中登录时如何更新令牌?

在 Express.js 中为啥 res.json() 之后的代码仍然执行?