To be Developer/MEAN Stack
[NodeJs]Parse a query string into an object
EdgarHan
2017. 9. 8. 14:14
Scenario
스프링으로 개발하다보면, URL 뒤에 /value=hi&id=nana0303
이런식으로 string을 쓰면 서버측에서 HandlerMethodArgumentResolver 등록해놨다면 바로바로 맵에서 Parameter 들을 꺼내 쓸 수 있엇다.
그래서 nodejs에서도 /down/value=hi&id=nana0303 이런식으로 보낸뒤 (나는 당연히 JSON 형식으로 갈꺼라 생각)
router.get('/download/:Params', function(req, res){
req.params.Params.storedname
}
서버에서 이렇게 꺼내쓰면 될 줄알았다. 하지만 params 은 긴 스트링으로 인식 되는 것이었다.
Solution
역시 NodeJs에서는 querystring 이라는 모듈로 제공 하고 있었다.
다음과 같이 쓰면 내가 원하는 결과를 얻을 수 있엇다.
- var querystring = require('querystring');
- //file down
- router.get('/download/:Params', function(req, res){
- var Params = querystring.parse(req.params.Params);
- console.log("path: %s",JSON.stringify(Params, null, " "));
- res.download('./'+downPath+Params.storedname, Params.originFileName);
- });