nestjshttp方法delete方法sendbody数据到达空



我用微服务构建了nestjs项目,我正在尝试从HTTP方法发送主体数据"删除";并从req.body获取数据。该数据到达时为空。

nestjs项目

await this.httpServiceInstance
.delete(`deleteData`, {
data,
})

微服务项目

路由

app.delete("/deleteData", endpoint(deleteData));

函数删除数据

module.exports = async (req) => { console.log(req.body) /* more code*/ } 

它是打印空对象{}

请在您的配置中以这种方式设置$httpProvider

$httpProvider.defaults.headers.delete = { "Content-Type": "application/json;charset=utf-8" };

然后调用delete请求:

await this.httpServiceInstance
.delete(`xxxxx`, {
data,
})

我认为您使用的是express,尽管我没有看到它被明确说明。它需要一个主体解析器,例如:

const express = require('express')
const app = express();
const port = process.env.PORT || 3000;
// parse body as JSON, puts object into req.body
app.use(express.json());
app.route('/deleteData')
.all((req, res) => {
console.log(req.method, req.body);
res.json(req.body);
});
app.listen(port, function() {
console.log('Server started on port: ' + port);
});

启动服务器,然后测试:

curl -X DELETE --data '{"foo": "bar"}' -H 'Content-Type: application/json' http://localhost:3000/deleteData

服务器控制台显示:DELETE { foo: 'bar' },将{"foo":"bar"}返回给客户端。

相关内容

最新更新