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で有効なリクエストのサイズを増やす方法を知っている人はいますか?ありがとう!
この問題はエクスプレスに関連しているため、私は解決策を見つけました(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();
私のために解決した解決策は、bodyLimitを増やすことでした。ソース: https://www.fastify.io/docs/latest/Server/#bodylimit
const app = await NestFactory.create<NestFastifyApplication>(
AppModule,
new FastifyAdapter({ bodyLimit: 10048576 }),
urlencoded
&json
を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();
Body-parserによって定義されるデフォルトの制限は100kbです: https://github.com/expressjs/body-parser/blob/0632e2f378d53579b6b2e4402258f4406e62ac6f/lib/types/json.js#L53-L55
お役に立てれば :)
私にとってそれは助けとなり、100kbを50mbに設定しました