2014-12-19 6 views
1

현재 node.js에서 들어오는 URL 요청을 어떻게 다시 디자인하고 거기에서 매개 변수를 읽을 수 있는지 알아 내려고합니다. 복원을 사용하고 있습니다. 내 router.js에서node.js 라우팅의 URL 디자인

:

server.get('/myDomainName/myService/:location/:userId',myFunction); 

나는 여기 추가 처리에서 매개 변수로 "위치"와 "사용자 ID"얻고있다.

이것은 완벽하게 작동합니다. ,

/myDomainName/myService?location=:x&userId=:y 

을하지만 난 x와 y (console.log(request.params.x))의 값을 읽을하려고 할 때 :하지만 나는이 같은 URL을 설계 한, 같은 URL을 재 설계 그래서

/myDomainName/myService?location={someLocation}&userId={someID}. 

필요 그들은 이고 정의되지 않은입니다. x와 y 값을 추가 처리에 사용해야합니다.

URL 디자인에 대해 내가 잘못하고있는 것은 무엇입니까? 어떻게 구현할 수 있습니까?

미리 감사드립니다.

+0

가능한 중복 [Node.JS에 대한 프레임 워크를 복원하여 여러 매개 변수를 구문 분석/읽는 방법] (http://stackoverflow.com/questions/15830448/how-to-parse-read-multiple-parameters-with-restify -framework-for-node-js) – mikaelb

답변

2

요 같은 URL을 설정할 수 있습니다 /myDomainName/myService 을하고 req.query.location에서 PARAMS을 얻고 req.query.userId

이것은 당신이 도움이 될 수 있습니다 : req.query에서, 사용 가능한 http://expressjs.com/api.html#req.query

+0

답장을 보내 주셔서 감사합니다. req.query와 req.params의 차이점을 이해했습니다. 불행히도 여전히 Undefined가 표시됩니다. 지금 내가하고있는 일 : server.get ('/ myDomainName/myService', myFunction); 그런 다음 브라우저에서/myDomainName/myService? localtion = bd를 누르면됩니다. console.log (request.query.location); -> Undefined :( –

+0

'req.query'를 출력하여 문제가 무엇인지 확인할 수 있습니다 :/ – naoxink

+0

'server.use (restify.queryParser());'를 설정 했습니까? – naoxink

0

쿼리 문자열 경로 경로에 포함되지 않습니다 . 경로 경로를 설계 할 때 쿼리 문자열을 무시하십시오.