Nest.js-请求实体太大PayloadTooLargeError:请求实体太大

时间:2018-10-12 16:54:59

标签: javascript node.js nestjs

我正在尝试将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中如何增加有效请求的大小吗?谢谢!

4 个答案:

答案 0 :(得分:9)

您还可以从Express导入urlencodedjson

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();

答案 1 :(得分:8)

我找到了解决方案,因为此问题与快递有关(Nest.js在后台使用快递),所以我在此线程Error: request entity too large中找到了解决方案, 我所做的就是修改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();

答案 2 :(得分:6)

为我解决的解决方案是增加bodyLimit。来源:https://www.fastify.io/docs/latest/Server/#bodylimit

DF2

答案 3 :(得分:0)

body-parser定义的默认限制为100kb: https://github.com/expressjs/body-parser/blob/0632e2f378d53579b6b2e4402258f4406e62ac6f/lib/types/json.js#L53-L55

希望这会有所帮助:)

对我来说有帮助,我将100kb设置为50mb