Node.js의 Express에서 전체 URL을 얻는 방법

Node.js에서 실행되는 Express에서는 request 개체에 액세스할 수 있으며 response 개체를 통해 사용자에게 응답을 다시 보낼 수도 있습니다. 그러나 request 에서 전체 URL을 얻는 간단한 방법에 대한 액세스 권한이 없습니다.

다행스럽게도 Express의 request 개체에서 전체 URL을 빌드하는 것은 매우 쉽습니다. 어떻게 작동하는지 살펴보겠습니다.

Express에서 요청의 전체 URL 얻기



명시적으로 다음과 같이 특정 경로에 특정 콘텐츠를 표시할 수 있습니다.

app.get('/page', (req, res, next) => {
    // Show some content to the user
})


경로 내에서 req 개체를 사용하여 전체 URL을 가져올 수 있습니다. 전체 URL은 몇 가지 다른 부분으로 구성됩니다.
  • 현재 URL의 프로토콜
  • URL의 호스트(예: 도메인 이름)
  • 및 현재 있는 페이지, 즉 /page

  • 요청에서 이 모든 것을 결합하기 위해 다음을 실행할 수 있습니다.

    let fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
    


    참고: 포트를 포함하므로 req.get('host') 를 사용하는 것이 좋습니다. 따라서 localhost:3000에서 실행 중인 경우 :3000가 포함됩니다. req.hostname는 도메인 또는 localhost만 반환하므로 나중에 문제가 발생할 수 있습니다.

    따라서 다음 코드를 사용하여 경로가 지정된 모든 페이지의 전체 URL을 찾을 수 있습니다.

    app.get('/page', (req, res, next) => {
        // Show some content to the user
        let fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
    })
    

    좋은 웹페이지 즐겨찾기