web-dev-qa-db-ja.com

Nest.js-リクエストエンティティが大きすぎますPayloadTooLargeError:リクエストエンティティが大きすぎます

JSONをNest.jsサーバーに保存しようとしていますが、実行しようとするとサーバーがクラッシュします。これがconsole.logに表示される問題です。

[Nest] 1976 - 2018-10-12 09:52:04 [ExceptionsHandler] request entity too large PayloadTooLargeError: request entity too large

JSONリクエストのサイズは1095922バイトです。Nest.jsで有効なリクエストのサイズを増やす方法を知っている人はいますか?ありがとう!

7
Alexisvt

この問題はエクスプレスに関連しているため、私は解決策を見つけました(Nest.jsはエクスプレスビハインドシーンを使用しています)このスレッドで解決策を見つけました エラー:リクエストエンティティが大きすぎますmain.tsを変更しましたファイルはbody-parse依存関係を追加し、いくつかの新しい構成を追加してJSONリクエストのサイズを増やします。次に、ファイルで使用可能なappインスタンスを使用してこれらの変更を適用します。

import { NestFactory } from '@nestjs/core';
import * as bodyParser from 'body-parser';

import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useStaticAssets(`${__dirname}/public`);
  // the next two lines did the trick
  app.use(bodyParser.json({limit: '50mb'}));
  app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
  app.enableCors();
  await app.listen(3001);
}
bootstrap();
13
Alexisvt

私のために解決した解決策は、bodyLimitを増やすことでした。ソース: https://www.fastify.io/docs/latest/Server/#bodylimit

const app = await NestFactory.create<NestFastifyApplication>(
AppModule,
new FastifyAdapter({ bodyLimit: 10048576 }),
2
Brenner Batista

urlencodedjsonをexpressからインポートすることもできます

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { urlencoded, json } from 'express';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.setGlobalPrefix('api');
  app.use(json({ limit: '50mb' }));
  app.use(urlencoded({ extended: true, limit: '50mb' }));
  await app.listen(process.env.PORT || 3000);
}
bootstrap();
2
shahidfoy

Body-parserによって定義されるデフォルトの制限は100kbです: https://github.com/expressjs/body-parser/blob/0632e2f378d53579b6b2e4402258f4406e62ac6f/lib/types/json.js#L53-L55

お役に立てれば :)

私にとってそれは助けとなり、100kbを50mbに設定しました

0
saddam