6

私はいたるところを見てきましたが、これについての説明を見つけることができないようです.これは、Herokuが私のログに示しているものです:

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

これらのエラーが発生した HTTP URL を示唆しているのか、それとも Heroku dyno が処理している次のリクエストの URL なのかがわからないため、最後のログ レコードを含めました (1 秒間に数百のリクエストを受け取るため、追跡するのは少しクレイジーです)。

私のアプリケーション ( ExpressJS ) は、大きな POST リクエストを受信する必要があるため、

app.use(express.limit('5mb'));

アプリの上部にある大きなポスト リクエスト (通常は 2 MB 未満) を許可します。上記のエラーが、受信したリクエストが大きすぎるためなのか、大きすぎるリクエストを S3 に送信しようとしたのか、それとも別の原因なのかはわかりません。何か案は?

ありがとう!

4

2 に答える 2

4

Express v4+ を使用している場合は、次のことができます。

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

または、次の単一行のソリューションを試すこともできますが、私は個人的にテストしていません

app.use(bodyParser.json({limit: '1mb'}));
于 2014-08-18T20:00:51.970 に答える
1

このソリューションは場合によっては機能しますが、アップロードしようとしているコンテンツapp.use(bodyParser({limit: '5mb'}));にアンパサンドが多数含まれている場合はうまく機能しません。&これは、body パーサーが に基づいて分割されるため&です。私にとってうまくいった解決策は、すべての出現箇所を正規表現&encodeURIComponent('&')使用して置き換えることです。だからあなたは持っています:

contentToUpload = contentToUpload .replace(/&/g, encodeURIComponent('&'))
于 2018-12-30T12:16:37.513 に答える