NodeJS 413(请求实体太大),当尝试快速上载文件时

uoifb46i  于 2022-12-18  发布在  Node.js
关注(0)|答案(2)|浏览(140)

我有一个简单的POST到/upload express端点。小文件工作正常,但是,任何超过2 MB的文件都会给我以下错误:
413(请求实体太大)
我是否遗漏了一些需要添加才能工作的东西?下面是我的代码:

const { Router } = require('express')
const fileUpload = require('express-fileupload')

router.post('/upload', fileUpload(), function (req, res) {
  console.log('I am never reached')
  let uploadFile = req.files.file
  const fileName = req.files.file.name
  // do stuff
}

我做错了什么?我错过了之前的另一个中间件吗?我还应该注意到,在fileUpload中,我已经尝试将其作为:

fileUpload({
  limits: { fileSize: 50 * 1024 * 1024 },
})

但没什么用。还能有什么问题?
编辑:这是我的获取代码,也可能会有帮助:

const data = new FormData()
  data.append('file', file, file.name)
  return isomorphicFetch(`/upload`, {
    method: 'POST',
    body: data
  })


谢谢!

qjp7pelc

qjp7pelc1#

你可以在你的应用程序的主文件中试试这个:

const express = require('express');
const app = express(); 
app.use(express.urlencoded({extended: false, limit:'100mb',parameterLimit:1000000 }));
7fhtutme

7fhtutme2#

我花了几个小时想弄明白。
不管我遵循的配置是什么,我总是得到413作为状态代码,我意识到问题是在我的kubernetes集群的NGINX入口,然后我补充说:

...
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: 16m

这就足以解决问题了。
我希望你能帮助其他人得到这个问题以及。

相关问题