대규모 요청 엔터티에 대한 오류 처리
Express 애플리케이션으로 작업할 때 "오류: 요청 엔터티가 너무 큼" 오류가 발생할 수 있습니다. 이 오류는 일반적으로 요청 페이로드의 크기가 지정된 제한을 초과할 때 발생합니다. 다음은 이 문제를 해결하는 방법에 대한 설명입니다.
제공된 코드 조각에는 다음 줄이 있습니다.
app.use(express.limit(100000000));
이 줄은 express.limit() 메서드를 사용하여 요청 크기는 100MB(1억 바이트)입니다. 그러나 이 설정은 bodyParser 메서드(코드 조각에는 표시되지 않음)를 사용하는 후속 미들웨어에 의해 재정의됩니다.
Body Parser의 올바른 구성
요청 크기 제한을 올바르게 설정하려면 bodyParser 미들웨어를 명시적으로 구성해야 합니다. 기본적으로 json()은 JSON 요청을 처리하는 데 사용되고 urlencoded()는 양식 데이터 요청에 사용됩니다. 해당 옵션을 사용하여 각 파서에 대한 제한을 설정할 수 있습니다:
app.use(express.json({limit: '50mb'})); app.use(express.urlencoded({limit: '50mb'}));
또는 현재 더 이상 사용되지 않는 bodyParser 메서드를 사용하고 해당 제한 옵션을 설정할 수 있습니다:
app.use(express.bodyParser({limit: '50mb'}));
한계 값 결정
귀하의 경우, 1.0787MB 페이로드(설정한 100MB 제한 이내) 이는 문제가 다른 곳에 있을 수 있음을 시사합니다. 더 제한적인 제한을 설정할 수 있는 다른 미들웨어 또는 타사 라이브러리를 구성하지 않았는지 확인하세요.
문제 해결
본문을 올바르게 구성한 경우- 파서 미들웨어를 사용하고 제한의 다른 잠재적 원인을 배제한 경우 제한이 잘못 설정된 위치를 식별하기 위해 코드를 디버깅해야 할 수도 있습니다. 제한 변수의 값을 검사하려면 미들웨어의 전략적 지점에 콘솔 로그를 추가하는 것이 좋습니다.
Express v4.16.0 이상에서는 app.use(express.limit의 간결한 구문을 사용하여 돌아갈 수 있습니다. ()). 그러나 bodyParser 메소드는 더 이상 사용되지 않으며 향후 코드 보호를 위해 body-parser로 대체되어야 한다는 점에 유의하는 것이 중요합니다.
위 내용은 Express.js 애플리케이션에서 \'오류: 요청 엔터티가 너무 큼\'을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!