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 이라는 모듈로 제공 하고 있었다.

다음과 같이 쓰면 내가 원하는 결과를 얻을 수 있엇다.

JavaScript 0.26 KB

  1. var querystring = require('querystring');
  2. //file down
  3. router.get('/download/:Params', function(req, res){
  4.     var Params = querystring.parse(req.params.Params);
  5.     console.log("path: %s",JSON.stringify(Params, null, " "));
  6.     res.download('./'+downPath+Params.storedname, Params.originFileName);
  7. });




+ Recent posts