2017-04-14 2 views
0

가 123 바이트 요청의 크기를 제한하려면, 내가 잘 작동 다음 사용익스프레스 : 제한 요청 크기

app.use(bodyParser.urlencoded({ 
    extended: true, 
    limit: 123 
})); 

이 "/ specialRequest"을 제외한 모든 요청을 을 구문 분석을, 나는 다음을 사용하는

app.use(/^(?!\/specialRequest)/,bodyParser.urlencoded({ 
    extended: true 
})); 

하지만 "/ specialReq을 123 모든 요청의 요청 크기를 제한하고 모든 요청을을 제외하고 을 구문 분석하는 데 실패 : 잘뿐만 아니라 작동 uest ".

app.use(/^(?!\/specialRequest)/,bodyParser.urlencoded({ 
    extended: true, 
    limit: 123 
})); 

그러나,이 단지는 "/ specialRequest"다른 요청에 대한 요청의 크기를 제한 : 여기에 내 현재 코드입니다. 요청을 123 개로 제한하고 모든 요청을 구문 분석 /specialRequest를 제외하고 요청 크기를 어떻게 제한 할 수 있습니까?

답변

1

/specialRequest에 대한 요청 본문의 크기는 제한되지만 구문 분석되지 않도록하려면 bodyParser.raw()을 사용할 수 있습니다. 이 경우 req.body은 요청 본문을 그대로 포함하는 Buffer 인스턴스가됩니다 (분석되지 않은 경우 gzip 또는 압축 된 데이터로 표시되는 경우 비정상적으로 표시되지만 옵션을 통해이 동작을 비활성화 할 수 있음).

당신은 당신이 bodyParser.urlencoded() 미들웨어 삽입하기 전에 선언 할 필요가

:

app.post('/specialRequest', bodyParser.raw({ limit : 123, type : '*/*' }), function(req, res) { 
    ... 
}); 

app.use(bodyParser.urlencoded({ 
    extended: true, 
    limit: 123 
})); 
+0

을하지만이 방법은 123에 '/ specialRequest'의 크기를 제한하지 않을까요? – BJPrim

+0

@BJPrim 오해했다고 생각합니다. 제 편집문을보십시오. – robertklep

+0

네, 그게 제 의도이지만, bodyParser.raw ({limit : 123})를 추가해도 아무런 효과가 없습니다. 전 bodyParser.urlencoded() 전에 넣어하지만 오류 및 경고가 표시됩니다. – BJPrim