J'essaie d'enregistrer un JSON
sur un serveur Nest.js mais le serveur plante lorsque j'essaye de le faire, et c'est le problème que je vois sur le console.log:
[Nest] 1976 - 2018-10-12 09:52:04 [ExceptionsHandler] request entity too large PayloadTooLargeError: request entity too large
Une chose est que la taille de la demande JSON est de 1095922 octets. Est-ce que quelqu'un sait comment dans Nest.js augmenter la taille d'une demande valide? Merci!
J'ai trouvé la solution, car ce problème est lié à express (Nest.js utilise express derrière la scène) J'ai trouvé une solution dans ce fil Erreur: entité de requête trop grande , ce que j'ai fait, c'est de modifier le fichier main.ts
, D'ajouter la dépendance body-parse
Et d'ajouter une nouvelle configuration pour augmenter la taille de la demande JSON
, puis j'utilise le app
instance disponible dans le fichier pour appliquer ces modifications.
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();
La solution qui a résolu pour moi était d'augmenter bodyLimit. Source: https://www.fastify.io/docs/latest/Server/#bodylimit
const app = await NestFactory.create<NestFastifyApplication>(
AppModule,
new FastifyAdapter({ bodyLimit: 10048576 }),
vous pouvez également importer urlencoded
& json
depuis 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();
La limite par défaut définie par body-parser est de 100 Ko: https://github.com/expressjs/body-parser/blob/0632e2f378d53579b6b2e4402258f4406e62ac6f/lib/types/json.js#L53-L55
J'espère que cela t'aides :)
Pour moi, cela a aidé et j'ai mis 100 Ko à 50 Mo