【发布时间】:2021-10-15 06:55:06
【问题描述】:
更新
看起来第 3 方应用正在使用 Content-Type: text/json 发送数据。我需要弄清楚如何配置快速中间件以接受*/* Content-Type
我正在尝试在 Express 中公开一个端点以接收来自 3rd 方应用程序的发布请求(webhook 通知)。本质上,当用户点击 3rd 方应用程序中的按钮时,它会向 express 端点发送一个带有数据的 post 请求。
这是我的代码的样子:
app.use(express.json()); // for parsing application/json
app.use(express.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.post('/notify', (req, res, next) => {
if (!req.body) {
return res.status(400).send('Bad Request');
}
console.log(req.body);
res.sendStatus(200);
});
当我使用 Postman (Postman w/ payload --> My Endpoint) 向此端点发帖时,一切正常,req.body 中的有效负载包含数据。
当第 3 方数据发布到此端点 (带有效负载的第 3 方 --> 我的端点) 时,正文不包含任何内容,并且在记录时会打印 {}。
如果我使用像 https://webhook.site 这样的在线工具从第 3 方 (第 3 方 w/ payload --> Webhook 测试站点)接收数据,则整个有效负载都存在于 @ 987654330@.
我不知道为什么它不起作用,并尝试多次更改中间件。
我尝试了以下链接,但都没有成功。
Express app empty request body with custom content type headers
【问题讨论】:
标签: node.js express post server webhooks