반응형
최근에 대량의 Mutation을 실행하기 위해서 서버에 요청을 보낸 적이 있었다. 그런데 PayloadTooLargeError: request entity too large 라는 에러가 뜨면서 Mutation 요청에 실패하는 일이 발생했다. 찾아보니 express 기반의 서버에서 발생하는 오류 같은데, 요청이 특정 크기를 넘어가게 되면은 막아버리는 것 같았다. 그래서 해결법을 찾아보니 express의 버전에 따라서 약간의 차이는 있으나, 해결법은 비슷해 보였다.
해결법
나는 아래와 같은 방법으로 해결했다. bodyParser 모듈을 설치한 다음 limit를 풀어 주었다. 아래 코드들은 main.ts 파일이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { resolve, join } from 'path';
import * as express from 'express';
import { urlencoded, json } from 'body-parser';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(express.static(join(process.cwd(), '../client/dist/')));
app.use(json({ limit: '50mb' }));
app.use(urlencoded({ limit: '50mb', extended: true }));
app.enableCors();
await app.listen(3000);
}
bootstrap();
|
cs |
express 버전에 따라서 동작이 안될 경우도 있다. 그럴 경우에는 다음과 같은 코드를 사용해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { resolve, join } from 'path';
import * as express from 'express';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.use(express.static(join(process.cwd(), '../client/dist/')));
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ limit: '50mb', extended: true }));
app.enableCors();
await app.listen(3000);
}
bootstrap();
|
cs |
가끔씩 관리자 모드에서 대량의 쿼리가 필요할 때 이러한 식으로 처리하면 대부분의 한계 용량은 커버 가능할 듯 하다.
반응형
'프레임워크 > NestJS' 카테고리의 다른 글
[NestJS] Prisma db 여러개 연결하기 (0) | 2022.01.08 |
---|---|
[NestJS] DB 캐시 Redis 사용하기 (0) | 2021.12.16 |
[NestJS] Guard 사용하기 (0) | 2021.12.04 |
[NestJS] 네이버 문자인증 로직 제작하기 (0) | 2021.11.06 |
[NestJs] 환경변수 설정하기 (0) | 2021.10.18 |