그래서 기본적으로 내가하는 일은 웹 페이지를 긁어 내고 내가 원하는 모든 데이터를 가져와 내 사이트의 웹 페이지에 표시하는 것입니다. 이 특정 페이지를 스크랩 할 때 'href'태그 내에 링크가 필요합니다. 그러나이 특정 사이트는 일반 링크를 사용하지 않습니다. 'href'태그 안에는 쿼리 문자열이 있습니다. 내 계획은 'href'안에있는 것을 가져 와서 다음 요청을 할 URL을 만드는 것이었지만 이제 쿼리 문자열을 URL에 전달하려고 할 때 req.params를 통해 Node에서 액세스 할 수 없습니다.
서버가 쿼리 문자열이라고 생각하지 않고 쿼리 문자열을 전달할 수있는 방법이 있는지 알고 싶습니다. 아니면 req.query를 사용하여 모든 매개 변수를 가져 와서 URL을 처음부터 다시 만들어야합니까?
다음은 제가 말하는 내용의 몇 가지 예입니다.
page1.ejs :
<a href="/display/<%= some.href %>"></a>
some.href = "? variable = bleh"
서버 측 처리 :
app.get('/display/:string', function(req, res) {
var url = "http://theurlineed.com/" + req.params.string;
});
이 코드는 작동하지 않습니다. 링크를 클릭하면 / display /? variable = bleh를 얻을 수 없다는 메시지가 표시됩니다.
URL에서 쿼리 문자열처럼 처리되지 않도록 쿼리 문자열을 인코딩해야합니다.
some.href = encodeURIComponent("?variable=bleh");
따라서 URL은 다음과 같습니다 /display/%3Fvariable%3Dbleh
. 주석에서 언급했듯이 Express는 값을 자동으로 디코딩 req.params.string
하여 올바른 값이됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다