개발관련/other

Express에서 전체 URL을 얻는 방법

Rateye 2021. 9. 9. 12:14
728x90
반응형

 

질문 : Express에서 전체 URL을 얻는 방법은 무엇입니까?

내 샘플 URL이

http://example.com/one/two

그리고 나는 다음 경로가 있다고 말합니다

app.get('/one/two', function (req, res) {
    var url = req.url;
}

url 의 값은 /one/two 입니다.

Express 에서 전체 URL 을 얻으려면 어떻게합니까? 예를 들어 위의 경우 http://example.com/one/two 를 받고 싶습니다.

답변

  1. req.protocol 로 사용할 수 있습니다. 여기에 문서
    1. req.get('X-Forwarded-Protocol') 이 설정되어 있고 값이 https 인 경우가 아니라면 http 라고 가정 할 수 있습니다.
  2. 호스트는 Gopal이 표시 req.get('host')
  3. app.listen 만, 알 필요가 있었다면 서버 시작시 app.listen에 전달한 것이기 때문에 애플리케이션 상태에 있어야합니다. 그러나 비표준 포트에서 로컬 개발의 경우 Chrome은 호스트 헤더에 포트를 포함하는 것처럼 req.get('host') 는 예를 들어 localhost:3000 반환합니다. 따라서 최소한 표준 포트에있는 프로덕션 사이트의 경우 (역방향 프록시없이) 익스프레스 앱을 직접 탐색하는 경우 host 헤더가 URL의 포트와 관련하여 올바른 작업을 수행하는 것 같습니다.
  4. 경로는 req.originalUrl (@pgrassant에게 감사드립니다). 여기에는 쿼리 문자열이 포함됩니다. req.url 및 req.originalUrl에있는 문서 . URL로 수행하려는 작업에 따라 originalUrl req.url 과 비교할 때 올바른 값일 수도 있고 아닐 수도 있습니다.

 

 

이들을 모두 결합하여 절대 URL을 재구성하십시오.

  var fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
출처 : https://stackoverflow.com/questions/10183291/how-to-get-the-full-url-in-express
728x90
반응형