首頁 > web前端 > js教程 > 為什麼我在 Express 中收到「請求實體太大」錯誤,如何修復它?

為什麼我在 Express 中收到「請求實體太大」錯誤,如何修復它?

Patricia Arquette
發布: 2024-12-02 03:59:10
原創
752 人瀏覽過

Why am I getting the

Express 中的「錯誤:請求實體太大」

當請求超出預先定義值時,Express 會遇到「請求實體太大”錯誤檔案大小限制。這個錯誤可能令人費解,讓開發人員摸不著頭緒。讓我們深入探討問題並探索解決方案。

1.設定請求大小限制

Express 提供了對請求正文的最大大小設定限制的功能。在您的程式碼中,您已定義:

app.use(express.limit(100000000));
登入後複製

此行將限制設為 100 兆位元組。在 Fiddler 中檢查請求標頭後,您發現內容長度為 1.0787 兆位元組,完全在規定的限制內。

2.重置限制

儘管設定了限制,但 Express 可能不會遵守它。此模組由多個層組成,在特定情況下,限制可能會一路重置。即使您明確定義了限制,這也可能導致錯誤仍然存在。

3.修補模組(不建議)

作為臨時解決方法,一些用戶報告透過直接修補模組成功。然而,值得注意的是,這不是一個理想的解決方案,應謹慎對待。如果您決定走這條路線,請自行決定是否繼續。

4.使用Body-Parser(僅限Express 4 和Node.js 10.12)

在Express 4 及更高版本中,應使用body-parser 中間件而不是express.bodyParser() 來處理請求正文。明確聲明您的解析器,如下所示:

app.use(body-parser.json({limit: '50mb'}));
app.use(body-parser.urlencoded({limit: '50mb', extended: true}));
登入後複製

如果未為 bodyParser.urlencoded() 指定擴充選項,則會拋出警告。

5.將bodyParser 移到頂部(僅限Express 4)

在Express 4 中,確保將app.use(bodyParser(...)) 放在app.use(express.json()) 或app.use(express.urlencoded()) 以避免覆蓋。

6.返回舊方式(僅限Express 4.16.0)

使用Express v4.16.0 及更高版本,您可以恢復到處理請求正文的原始方式:

app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
登入後複製

透過以上措施,可以有效解決Express中「Request Entity Too Large”錯誤。請記得使用最適合您的 Express 版本和環境的方法,以確保無縫操作。

以上是為什麼我在 Express 中收到「請求實體太大」錯誤,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板