Heim >Web-Frontend >js-Tutorial >Warum erhalte ich in Express den Fehler „Request Entity Too Large' und wie kann ich ihn beheben?

Warum erhalte ich in Express den Fehler „Request Entity Too Large' und wie kann ich ihn beheben?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-02 03:59:10748Durchsuche

Why am I getting the

Fehler: Anforderungsentität zu groß“ in Express

Express stößt auf den Fehler „Anforderungsentität zu groß“, wenn eine Anforderung einen vordefinierten Wert überschreitet Dateigrößenbeschränkung. Dieser Fehler kann rätselhaft sein und Entwicklern Kopfzerbrechen bereiten. Lassen Sie uns in das Problem eintauchen und nach Lösungen suchen.

1. Festlegen des Anforderungsgrößenlimits

Express bietet die Möglichkeit, ein Limit für die maximale Größe des Anforderungstexts festzulegen. In Ihrem Code haben Sie Folgendes definiert:

app.use(express.limit(100000000));

Diese Zeile legt die Grenze auf 100 Megabyte fest. Bei der Untersuchung der Anforderungsheader in Fiddler stellen Sie eine Inhaltslänge von 1,0787 Megabyte fest, was deutlich innerhalb der vorgeschriebenen Grenze liegt.

2. Zurücksetzen des Limits

Obwohl Express das Limit festgelegt hat, wird es möglicherweise nicht eingehalten. Das Modul besteht aus mehreren Schichten und in bestimmten Fällen kann es sein, dass das Limit im Laufe der Zeit zurückgesetzt wird. Dies kann dazu führen, dass der Fehler auch dann bestehen bleibt, wenn Sie den Grenzwert explizit definiert haben.

3. Patchen des Moduls (nicht empfohlen)

Als vorübergehende Problemumgehung haben einige Benutzer einen Erfolg durch direktes Patchen des Moduls gemeldet. Es ist jedoch wichtig zu beachten, dass dies keine ideale Lösung ist und mit Vorsicht angegangen werden sollte. Wenn Sie sich für diesen Weg entscheiden, gehen Sie nach eigenem Ermessen vor.

4. Verwenden von Body-Parser (nur Express 4 und Node.js 10.12)

In Express 4 und höher sollte die Body-Parser-Middleware anstelle von express.bodyParser() für die Verarbeitung von Anforderungstexten verwendet werden. Deklarieren Sie Ihre Parser explizit wie folgt:

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

Wenn die erweiterte Option nicht für bodyParser.urlencoded() angegeben ist, wird eine Warnung ausgegeben.

5. bodyParser nach oben verschieben (nur Express 4)

Stellen Sie in Express 4 sicher, dass Sie app.use(bodyParser(...)) vor app.use(express.json()) oder platzieren app.use(express.urlencoded()), um Überschreibungen zu vermeiden.

6. Zurück zum alten Weg (nur Express 4.16.0)

Mit Express v4.16.0 und höher können Sie zur ursprünglichen Art der Bearbeitung von Anforderungstexten zurückkehren:

app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));

Durch den Einsatz dieser Maßnahmen können Sie den Fehler „Request Entity Too Large“ in Express effektiv beheben. Denken Sie daran, die für Ihre Express-Version und Umgebung am besten geeignete Methode zu verwenden, um einen reibungslosen Betrieb zu gewährleisten.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Express den Fehler „Request Entity Too Large' und wie kann ich ihn beheben?. 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