Maison > interface Web > js tutoriel > Pourquoi est-ce que je reçois l'erreur « Demande d'entité trop grande » dans Express et comment puis-je la corriger ?

Pourquoi est-ce que je reçois l'erreur « Demande d'entité trop grande » dans Express et comment puis-je la corriger ?

Patricia Arquette
Libérer: 2024-12-02 03:59:10
original
752 Les gens l'ont consulté

Why am I getting the

"Erreur : Entité de demande trop grande" dans Express

Express rencontre l'erreur "Entité de demande trop grande" lorsqu'une requête dépasse un seuil prédéfini limite de taille de fichier. Cette erreur peut être déroutante, laissant les développeurs perplexes. Plongeons dans le problème et explorons des solutions.

1. Définition de la limite de taille de la demande

Express offre la possibilité de définir une limite sur la taille maximale du corps de la demande. Dans votre code, vous avez défini :

app.use(express.limit(100000000));
Copier après la connexion

Cette ligne fixe la limite à 100 mégaoctets. En examinant les en-têtes de requête dans Fiddler, vous observez une longueur de contenu de 1,0787 mégaoctets, ce qui est bien dans la limite prescrite.

2. Réinitialisation de la limite

Malgré la limite fixée, Express ne la respecte peut-être pas. Le module se compose de plusieurs couches et, dans des cas spécifiques, la limite peut être réinitialisée en cours de route. Cela peut entraîner la persistance de l'erreur même après que vous ayez explicitement défini la limite.

3. Patcher le module (non recommandé)

En guise de solution de contournement temporaire, certains utilisateurs ont signalé un succès en corrigeant directement le module. Cependant, il est essentiel de noter qu’il ne s’agit pas d’une solution idéale et qu’elle doit être abordée avec prudence. Si vous décidez d'emprunter cette voie, procédez à votre propre discrétion.

4. Utilisation de Body-Parser (Express 4 et Node.js 10.12 uniquement)

Dans Express 4 et versions ultérieures, le middleware body-parser doit être utilisé à la place de express.bodyParser() pour gérer les corps des requêtes. Déclarez explicitement vos analyseurs comme suit :

app.use(body-parser.json({limit: '50mb'}));
app.use(body-parser.urlencoded({limit: '50mb', extended: true}));
Copier après la connexion

Si l'option étendue n'est pas spécifiée pour bodyParser.urlencoded(), un avertissement sera émis.

5. Déplacer bodyParser vers le haut (Express 4 uniquement)

Dans Express 4, assurez-vous de placer app.use(bodyParser(...)) avant app.use(express.json()) ou app.use(express.urlencoded()) pour éviter les remplacements.

6. Revenir à l'ancienne méthode (Express 4.16.0 uniquement)

Avec Express v4.16.0 et versions ultérieures, vous pouvez revenir à la manière originale de gérer les corps de requête :

app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
Copier après la connexion

En employant ces mesures, vous pouvez résoudre efficacement l'erreur « Demande d'entité trop grande » dans Express. N'oubliez pas d'utiliser la méthode la plus appropriée pour votre version et votre environnement Express afin de garantir un fonctionnement fluide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal