ホームページ > ウェブフロントエンド > jsチュートリアル > Express.js の「エラー: リクエスト エンティティが大きすぎます」を修正するにはどうすればよいですか?

Express.js の「エラー: リクエスト エンティティが大きすぎます」を修正するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-27 15:09:11
オリジナル
435 人が閲覧しました

How to Fix the

Express での「エラー: リクエスト エンティティが大きすぎます」のトラブルシューティング

Express ユーザーは、大きなペイロードを処理するときに「エラー: リクエスト エンティティが大きすぎます」エラーが発生することがあります。この問題は、受信リクエストが設定されたサイズ制限を超えると発生します。

リクエスト サイズ制限の設定

この問題を解決するには、ユーザーは app.use(express.制限(サイズ)) ミドルウェア。この例では、制限は 100,000,000 オクテットに設定されています。

Content-Length ヘッダーの確認

Fiddler の Content-Length ヘッダーが、ポストされる JSON 配列のサイズと一致することを確認します。この場合、ヘッダーには 1078702 オクテットの値が表示されます。これは 1.0787 メガバイトに相当します。

考えられる解決策

考えられる解決策の 1 つは、app.use(express.bodyParser({limit) を使用することです。 : '50mb'})) app.use(express.limit(size)) の代わりに。このアプローチは一部のユーザーで機能することが報告されています。

一時パッチ

上記の解決策が失敗した場合は、raw-body モジュールを直接変更することで一時パッチを適用できます。制限 = 52428800; を追加することで、 node_modules/express/node_modules/raw-body/index.js の 10 行目では、制限は強制的に 50 メガバイトに設定されます。 これは一時的な回避策であり、永続的な解決策ではないことに注意してください。

推奨される解決策

より堅牢な解決策として、body-parser モジュールを使用することをお勧めします。 Express4以降。次のコード スニペットは、ボディ サイズ制限の構成方法を示しています。

const bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb'}));
ログイン後にコピー

追加メモ:

  • bodyParser() は非推奨であるため、使用しないでください。
  • Express の urlencoded() の extend オプションを使用する3.x.
  • Express 4.16.0 以降では、制限を設定するための以前の方法 (app.use(express.json({limit: '50mb'}))) が再びサポートされています。

以上がExpress.js の「エラー: リクエスト エンティティが大きすぎます」を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート