gpt4 book ai didi

node.js - 如何在 Koa Web 框架中访问 "request payload"?

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:53 27 4
gpt4 key购买 nike

我们使用 navigator.sendBeacon 函数将数据发送到 Koa 服务器,其中我们使用 bodyparser。

如果我们没有将数据包装到表单中,则默认情况下此函数将数据作为请求负载发送。我如何才能在 Koa 服务器上访问这些数据?

示例 -

navigator.sendBeacon('http://localhost:3000/cookies/', 'test=payload')

在服务器上,请求正文为空。

enter image description here

最佳答案

考虑到

  1. Koa 不会解析请求正文,因此您需要使用 koa-bodyparserkoa-body ,

  2. koa-bodyparser 默认情况下仅启用 jsonform 解析,

  3. 来自 your screenshot ,很明显 navigator.sendBeaconContent-Type 设置为 text

您需要更改 Koa 服务器代码,以便它解析 text 数据。

示例:

const Koa = require('koa'),
bodyParser = require('koa-bodyparser'),
app = (module.exports = new Koa());

app.use(bodyParser({ enableTypes: ['json', 'text'] }));

app.use(async (ctx) => {
// ctx.request.body should contain the parsed data.
console.log('Received data:', ctx.request.body);
ctx.body = ctx.request.body;
});

if (!module.parent) app.listen(3000);

测试

koa 2.7.0

koa-bodyparser 4.2.1

关于node.js - 如何在 Koa Web 框架中访问 "request payload"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591683/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com