NodeJS - /Express-Request Entity Too Large - Heroku
Ich habe überall gesucht und kann nicht scheinen zu finden, eine Erklärung darüber, dies ist was Heroku zeigt in meinen logs:
45:45+00:00 app[web.7]: Error: Request Entity Too Large
45:45+00:00 app[web.7]: at Object.error (/app/node_modules/express/node_modules/connect/lib/utils.js:44:13)
45:45+00:00 app[web.7]: at Object.limit [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/limit.js:45:47)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.logger [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/logger.js:157:5)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.favicon [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/favicon.js:78:7)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.expressInit [as handle] (/app/node_modules/express/lib/middleware.js:31:5)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.query [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/query.js:44:5)
45:45+00:00 app[web.7]: POST /mls 413 1ms - 980
Ich habe den letzten log-Eintrag, da bin ich mir nicht sicher, ob er schlägt vor, die HTTP-URL, wo diese Fehler passiert sind, oder wenn es die URL der nächsten Anfrage Heroku dyno ist die Verarbeitung (wir erhalten Hunderte von Anfragen pro Sekunde, so ist es ein bisschen verrückt zu verfolgen).
Meine Anwendung (ExpressJS) erfordert eine große POST-requests, das ist, warum ich habe
app.use(express.limit('5mb'));
oben in der app zu erlauben, großen post-Anfragen (in der Regel weniger als 2 MB). Ich bin mir nicht sicher, ob die oben genannten Fehler angezeigt werden verursacht durch empfangen einer Anforderung, die zu groß oder zu senden versuchen, eine Anfrage an S3, die zu groß oder etwas anderes. Irgendwelche Ideen?
Dank!
- ja, das ist die Grenze, middleware, aber Sie sind wahrscheinlich, etwas falsch zu machen, wenn dies protokolliert wird an die Konsole. diese sind "abgewickelt" Fehler - keine Notwendigkeit, es zu protokollieren.
- hast du jemals dieses Problem lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn Sie Express v4+, die Sie tun können:
Oder Sie können versuchen, die folgenden single-line-Lösung, aber ich habe nicht persönlich getestet
app.use(bodyParser.json({limit: '1mb'}));
app.use(bodyParser.json());
, dannapp.use(bodyParser({limit: '5mb'}));
. Oder Sie können versuchen, Jayen online-Lösung, aber ich habe nicht persönlich getestet ->app.use(bodyParser.json({limit: '1mb'}));
Während die Lösung
app.use(bodyParser({limit: '5mb'}));
funktioniert in einigen Fällen, es wird nicht gut funktionieren, wenn Sie haben eine Menge kaufmännisches und-Zeichen&
in die Inhalte, die Sie hochladen möchten, um. Dies ist, weil der Körper parser split basierend auf&
. Die Lösung, die für mich gearbeitet ist, um zu ersetzen Sie alle vorkommen von&
mitencodeURIComponent('&')
mit Regex.So haben Sie: