2014-10-02 9 views
1

라우팅의 매개 변수 중 하나는 실제로 URL입니다. URL "http://domain.com/file.xml"와 같은 링크는 실제로 : 어떻게매개 변수에서 URL을 가져 오는 방법

router.get('/api/sitemap/:url', function(req, res) 
     { 

      var url = req.params.url; 
      ... 
     } 

가 나는 때이 통과 할 수 있습니다.

제대로 연결되지 않아 오류로 처리 할 수 ​​없어 이해할 수있는 404 오류가 발생합니다.

미리 감사드립니다.

+0

이 끝점의 전체 URL에 대한 예는 어떻게 표시됩니까? URL 매개 변수를 올바르게 인코딩하고 있습니까? 나는 그렇지 않다. –

+0

큰 문제에 유의하십시오. 내 url은 http : // localhost : 3000/api/sitemap/domain.com/file.xml이며, 오류가 발생하더라도 관계없이 발생합니다. – user2091936

+0

대신'http : // localhost : 3000/api/sitemap/domain.com % 2Ffile.xml'을 시도해보십시오. 404 오류가 발생하면 서버가 URL 경로를 찾을 수 없다는 것을 의미합니다. –

답변

1

경로를 인식 할 수 없기 때문에 라우터가 404를 반환합니다. 당신이 같이 의견 제안의 URL의 PARAM을 인코딩하거나, 더 나아가 슬라이스해야 하나 :

.get('/api/site/:domain/: file', cb)

말썽이 당신은 또한 프로토콜을 전달하는 경우, 당신도 일치해야한다는 것입니다.

지금 시도하는 콘솔을하지 마십시오,하지만 난 당신이 와일드 카드 통과 할 수있을 것 같아요 :

'/api/sitemap/*' 

당신은 다음 자신의 URL을 구문 분석해야 할 것이다, 그러나 그것은 간단합니다 :

var url = req.url.substr(14); 

(그것이 내가 내 모바일 :-)에있어 이후 손에 계산,이 인덱스에 13 or14을인지 확실하지 않음).

관련 문제