2017-12-11 19 views
1

Azure 함수 HTTP 트리거 Javascript 함수에서 쿼리 문자열 부분을 포함하여 전체 요청 URL을 가져 오는 방법이 있습니까?Azure 함수 : HTTP 트리거 함수에서 쿼리 문자열을 포함한 전체 요청 URL 가져 오기

req (및 context.req) 매개 변수는 req.url에 쿼리 문자열이없는 url과 req.query에 키 - 값 쌍으로 쿼리 문자열을 포함합니다. 그러나 내가 볼 수있는 한 전체 요청 URL에 직접 액세스 할 수는 없습니다. 기본 URL과 키 - 값 객체만으로 전체 URL을 재구성하는 것도 불가능합니다. http://foo.azurewebsites.net/api/bar/baz?a=1&&&b=2&c=&d===5&e=&f=6&g

같은 예를 들어 뭔가를

는 축약 등 프록시 URL을 구축에 필요한 전체 요청 URL에 대한 액세스 권한을 갖는

{ 
    url: '/bar/baz/', 
    query: { 
     a: '1', 
     b: '2', 
     c: '\n\u0001d\u0012\u0003==5', 
     e: '\n\u0001f\u0012\u00016', 
     g: '\n\u0001a\u0012\u0003\n\u00011' 
    } 
} 

로 바뀌 그리고 도착 공식적인 형식이 없기 때문에 쿼리 문자열, 규칙 만 있으면 모든 유형의 쿼리 문자열을 처리 할 수 ​​있다는 것이 좋습니다. 댓글에서

module.exports = function (context, req) { 
    context.log('HTTP trigger function processed a request: ' + req.originalUrl); 
    context.done(); 
}; 

업데이트 : 분명히,이 아직 2.0 런타임에서 작동하지 않습니다,하지만 결국 지원됩니다 docs을 바탕으로

답변

2

, 당신은 req.originalUrl에서 그것을 얻을 수 있어야 issue.

+0

감사합니다. Mikhail! req.originalUrl에는 검색어 문자열 (기본 URL 만 포함) (req.url과 동일)이 포함되지 않습니다. – jarsta

+0

내 기능을 실행하고 로그에'https : //myapp.azurewebsites.net/api/HttpTriggerJS1? code = mycode & test = test2'가 있습니다 – Mikhail

+0

흥미 롭습니다. 어떤 버전의 런타임을 사용하고 있습니까? 이것은 2.x 런타임 또는 macOS CLI 환경의 문제 일 수 있습니다. 테스트 할 새 앱과 함수를 만들었으며 쿼리 문자열은 req.originalUrl에 포함되어 있지 않습니다. 그래도 올바른 방향으로 날 조종 해줘서 고마워! – jarsta