783 Stimmen

Fehler: Anforderungssatz zu groß

Ich erhalte den folgenden Fehler mit Express:

Fehler: Anforderungsentität zu groß
    at module.exports (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/node_modules/raw-body/index.js:16:15)
    at json (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/json.js:60:5)
    at Object.bodyParser [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:53:5)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.cookieParser [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.logger (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/logger.js:158:5)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.staticMiddleware [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/static.js:55:61)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
TypeError: /Users/michaeljames/Documents/Projects/Proj/mean/app/views/includes/foot.jade:31
    29| script(type="text/javascript", src="/js/socketio/connect.js")
    30| 
  > 31| if (req.host='localhost')
    32|     //Livereload script rendered 
    33|     script(type='text/javascript', src='http://localhost:35729/livereload.js')  
    34| 

Kann Eigenschaft 'host' von undefined nicht festlegen
    at eval (eval at  (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:152:8), :273:15)
    at /Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:153:35
    at Object.exports.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:197:10)
    at Object.exports.renderFile (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:233:18)
    at View.exports.renderFile [as engine] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:218:21)
    at View.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/view.js:76:8)
    at Function.app.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/application.js:504:10)
    at ServerResponse.res.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/response.js:801:7)
    at Object.handle (/Users/michaeljames/Documents/Projects/Proj/mean/config/express.js:82:29)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:188:17)

POST /api/0.1/people 500 618ms

Ich verwende meanstack. Ich habe die folgenden Verwendungsanweisungen in meinem express.js

//Set Request Size Limit
app.use(express.limit(100000000));

In Fiddler kann ich den Inhaltslängenheader mit einem Wert von: 1078702 sehen

Ich glaube, dies sind Oktette, das sind 1,0787 Megabyte.

Ich habe keine Ahnung, warum Express mich nicht den JSON-Array posten lässt, den ich zuvor in einem anderen Express-Projekt gepostet hatte, das nicht die Projektstruktur des Mean-Stack verwendet hat.

5voto

NIKIT PULEKAR Punkte 31

Wenn Sie express.json() und bodyParser zusammen verwenden, wird ein Fehler angezeigt, da express sein eigenes Limit setzt.

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

Entfernen Sie den obigen Code und fügen Sie einfach den folgenden Code hinzu

app.use(bodyParser.json({ limit: "200mb" }));
app.use(bodyParser.urlencoded({ limit: "200mb",  extended: true, parameterLimit: 1000000 }));

5voto

carkod Punkte 1416

In meinem Fall hat das Entfernen von Content-Typ aus den Anforderungsheadern funktioniert.

4voto

Für mich hat der folgende Codeausschnitt das Problem gelöst.

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

3voto

Asraful Punkte 1161

Ich habe kürzlich dasselbe Problem gehabt und die unten stehende Lösung hat für mich funktioniert.

Abhängigkeit :
express >> Version: 4.17.1
body-parser >> Version: 1.19.0
const express = require('express');
const bodyParser = require('body-parser');

const app = express(); 
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

Zum Verständnis: HTTP 431

Der HTTP-Statuscode 413 Payload Too Large zeigt an, dass die Anforderungseinheit größer ist als die vom Server definierten Grenzen; der Server kann die Verbindung schließen oder einen Retry-After-Header zurückgeben.

3voto

WasiF Punkte 20540

Ich hatte auch dieses Problem, ich habe einen dummen Fehler gemacht, indem ich app.use(bodyParser.json()) wiederholt habe, wie unten gezeigt:

app.use(bodyParser.json())
app.use(bodyParser.json({ limit: '50mb' }))

Indem ich app.use(bodyParser.json()) entfernte, wurde das Problem gelöst.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X