Heim >Web-Frontend >js-Tutorial >Wie behebe ich den „Fehler: Anforderungsentität zu groß' in Express.js?

Wie behebe ich den „Fehler: Anforderungsentität zu groß' in Express.js?

Susan Sarandon
Susan SarandonOriginal
2024-11-27 15:09:11441Durchsuche

How to Fix the

Fehlerbehebung „Fehler: Anforderungsentität zu groß“ in Express

Express-Benutzer können bei der Verarbeitung großer Nutzlasten auf den Fehler „Fehler: Anforderungsentität zu groß“ stoßen. Dieses Problem tritt auf, wenn die eingehende Anforderung die konfigurierte Größenbeschränkung überschreitet.

Festlegen der Anforderungsgrößenbeschränkung

Um dieses Problem zu beheben, können Benutzer die Anforderungsgrößenbeschränkung mithilfe von app.use(express) anpassen. limit(size)) Middleware. Im bereitgestellten Beispiel ist das Limit auf 100.000.000 Oktette festgelegt.

Überprüfen des Content-Length-Headers

Stellen Sie sicher, dass der Content-Length-Header in Fiddler mit der Größe des geposteten JSON-Arrays übereinstimmt. In diesem Fall zeigt der Header einen Wert von 1078702 Oktetten, was 1,0787 Megabyte entspricht.

Mögliche Lösung

Eine mögliche Lösung ist die Verwendung von app.use(express.bodyParser({limit : '50mb'})) anstelle von app.use(express.limit(size)). Es wurde berichtet, dass dieser Ansatz bei einigen Benutzern funktioniert.

Temporärer Patch

Wenn die oben genannten Lösungen fehlschlagen, kann ein temporärer Patch angewendet werden, indem das Raw-Body-Modul direkt geändert wird. Durch Hinzufügen von limit = 52428800; In Zeile 10 von node_modules/express/node_modules/raw-body/index.js wird die Grenze auf 50 Megabyte erzwungen. Beachten Sie, dass dies eine vorübergehende Problemumgehung und keine dauerhafte Lösung ist.

Empfohlene Lösung

Für eine robustere Lösung wird empfohlen, das Body-Parser-Modul mit zu verwenden Express 4 oder höher. Der folgende Codeausschnitt veranschaulicht, wie die Körpergrößenbeschränkung konfiguriert wird:

const bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb'}));

Zusätzliche Hinweise:

  • Verwenden Sie bodyParser() nicht, da es veraltet ist.
  • Verwenden Sie die Erweiterungsoption für urlencoded() in Express 3.x.
  • In Express 4.16.0 und höher wird die vorherige Methode zum Festlegen des Limits (app.use(express.json({limit: '50mb'}))) wieder unterstützt.

Das obige ist der detaillierte Inhalt vonWie behebe ich den „Fehler: Anforderungsentität zu groß' in Express.js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn