How to upload an image using NodeJS, Nginx and base64? (413 PayloadTooLargeError: request entity too large)

How to upload an image using NodeJS, Nginx and base64? (413 PayloadTooLargeError: request entity too large)

我正在尝试使用 Postman 原始文本选项上传 5 张 base64 图像,并设置了 application/json header。 服务器不断返回提到的错误。 我在 Nginx 反向代理后面使用 NodeJS。

我已经尝试了下面代码中提到的所有选项,包括将限制增加到 (100M),这显然不是问题所在。

NodeJS(MAXIMUM_FILE_SIZE_LIMIT='500mb'):

app.use(bodyParser.urlencoded({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, parameterLimit: 100000, extended: true }));
app.use(bodyParser.json({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, extended: true }));
// app.use(bodyParser.text({ limit: process.env.MAXIMUM_FILE_SIZE_LIMIT, extended:true }));
app.use( bodyParser.text({type : 'application/text-enriched', limit: process.env.MAXIMUM_FILE_SIZE_LIMIT}) );   
app.use( bodyParser.raw({limit: process.env.MAXIMUM_FILE_SIZE_LIMIT}) );   

Nginx
配置里面(服务器,http,位置):
nginx.conf,
sites-enabled/default,
sites-available/default:

client_max_body_size 100M

我要成功上传图片(5),总大小不超过2MB。

最终的解决方案是将 nginx 的 client_max_body_size 5M; 保留在 nginx.conf,以及在我的 NodeJS 代码中使用以下行:

app.use(bodyParser.urlencoded({ limit: '5mb', extended: true }));
app.use(bodyParser.json({ limit: '5mb' }));

请注意!!!
在尝试了很多组合之后,问题似乎与上面的 metnioned 完全无关。
在按顺序使用 node 命令执行服务器时,一切正常。但是,因为我想让应用程序保持活动状态(在服务器重启的情况下),所以我使用了 forever.
永远启动应用程序,但显然每次都会抛出 413 错误,无论 nginx 和节点的设置如何。
切换到 PM2,终于解决了这个问题。

祝你好运!