【问题标题】:Getting 413 error when trying to receive base64 images尝试接收 base64 图像时出现 413 错误
【发布时间】:2021-11-11 19:00:36
【问题描述】:

我正在尝试创建一个从我们学校数据库接收数据的网络服务。在我尝试从数据源接收照片之前,连接服务工作正常。

图片以 base64 格式输入,我使用以下代码来控制 post_size:

app.use(express.json({limit: "2000mb"}));
app.use(express.urlencoded({limit: "2000mb", extended: false}));

这是我用过的最大尺寸,只是为了确保任何尺寸的数据都可以进来。这只是为了测试,一旦我知道了实际尺寸,我就可以做相应的调整。

所以我需要输入大约 700 张图片,每个图片大小约为 1MB - 所以 2000mb 应该绰绰有余。

我在数据源的日志中不断收到以下消息:

Error: 413 (Request Entity Too Large)

是否存在我不知道的 expressjs、节点或 JSON 的限制?

写这个是PHP,并使用XML作为接受格式会更好吗?

如果可以的话,我想坚持使用 Express 和 JSON...

谢谢:-)

编辑:我忘了提到我在 docker 容器中运行所有这些 - 也许有限制?

【问题讨论】:

  • 你可以尝试将mb切换到MB吗?

标签: node.js json api express base64


【解决方案1】:

我知道这对我有用。请改用 bodyParser。看起来 express.json 和 urlencoded 可能已被弃用。

const bodyParser = require('body-parser')
app.use(bodyParser.json({ limit: '50mb' }))
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }))
app.use(basePath + '/', routes)

【讨论】:

  • 我认为 express.json 是基于 body-parser 的吗?不一样吗?
  • 啊,我想你可能是对的。
  • 你在app.use(routes)之前使用中间件吗??
  • 是的 - app.use 就在顶部的变量声明下方。
  • 我刚刚意识到我没有提到我正在为我的应用程序使用 docker 容器 - 这会影响它吗?
猜你喜欢
  • 2021-05-08
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多