簡體   English   中英

如何使用NodeJS,Nginx和base64上傳圖像? (413 PayloadTooLargeError:請求實體太大)

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

我正在嘗試使用Postman原始文本選項上傳5張base64圖像,並設置了application / json標頭。 服務器不斷返回所提到的錯誤。 我在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,
網站啟用/默認,
網站可用/默認:

client_max_body_size 100M

我想成功上傳圖像(5),其總大小不超過2MB。

最終的解決方案是將Nginx的client_max_body_size 5M;保留為client_max_body_size 5M; 僅在nginx.conf ,以及在NodeJS代碼中使用以下幾行:

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

請注意!!!
嘗試了多種組合后,該問題似乎與上面提到的問題無關。
在按順序使用node命令執行服務器時,一切工作正常。 但是,因為我想保持應用程序正常工作(套內的服務器重啟),我用forever
Forever啟動了該應用程序,但顯然每次都始終拋出413錯誤,無論nginx和節點的設置如何。
切換到PM2 ,最終解決了該問題。

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM