node.js - 无法通过 Koa 和 koa-body HTTPS POST 1.5 mb 的 json 对象。仅状态 413 生产

标签 node.js reactjs koa koa-bodyparser

我正在尝试将一个大约 1.5 mb 的 JSON 对象从我们的 React 客户端上传到我们的 Koa.js node.js 服务器。

我将 Koa.js 与 koaBody (koa-body 4.1.1) 一起使用。

在 HTTPS 上,在我们的生产环境中,我无法上传对象,我从我们的服务器收到状态 413。但是,在 dev 或 http 上,我上传文件没有问题。我可以将 jsonLimit 更改为“1mb”并在 dev 中复制相同的错误,因此我知道格式是正确的。

我已将配置设置为处理最多“10mb”。这是代码。

.use(koaBody({
  multipart: true,
  json: true,
  jsonLimit: "10mb",
}))

有人有解决办法吗? 我将简单地拆分 JSON 对象,但是我想知道“为什么”这不起作用,因为对我来说 1.5 mb 并不算太大。 enter image description here

更新:我已将 jsonLimit 设置为“50mg”,结果没有差异。

更新:我相信这个 413 与我们通过 azure 设置的入口 Controller 有关。

最佳答案

从你的截图来看,主体大小确实约为 1.5MB(兆字节),但那是 1.5*8= ~12.5 Mb(兆位)。因此,提高 jsonLimit 来适应这一点。

您的浏览器和应用程序之间还有 nginx。您需要确保 nginx 的主体大小限制也足够高。在您的配置中查找 client_max_body_size - 或者如果它不存在,请为您的应用程序设置它(例如 client_max_body_size 20m;

关于node.js - 无法通过 Koa 和 koa-body HTTPS POST 1.5 mb 的 json 对象。仅状态 413 生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64071632/

相关文章:

javascript - 将事件处理程序包装在 Promise 中

javascript - 这是在钩子(Hook) react 中更新状态的正确方法吗?

Koa - 产量错误处理的最佳实践

node.js - 在哪里放置 robots.txt - Nodejs Express 项目

node.js - 尝试获取 Azure Blob 存储中非公开的文件时,Azure 函数收到 AuthorizationFailure

javascript - React-FLUX-将对象作为参数传递-未定义

javascript - 使用 Apache 作为后端 JavaScript (Strapi) 服务器的代理

javascript - 我怎样才能创建cookies并重定向到这个应用程序的主页?

javascript - 在 React 中显示二进制 PDF