2014-03-03 3 views
2

Node.js를 사용하여 restAPI를 개발 중입니다. 이에URL 구문 분석 : node.js

http://xxxxxxxx:3000/map70/places?node[level0=12&level1=34&level2=234][ids=1,2,3,4][key=xxxxxxxxxx][val=2011] 

i는 각 매개 변수 LEVEL0, 레벨 1, 레벨 2, IDS, 키, 값을 얻을 수있다 : 그에서 다음 내 API의 URL입니다.

http://xxxxxxxx:3000/map70/places?key=xxxxxxx&val=2011&level0=2&level1=33&level2=602 

나는 내가 하란 많이 검색 구문 분석 할 수있는 방법 위의 URL에 대한 req.query.level0.. 나누었다 같은 구문 분석 할 수 있습니다,하지만 난 오른쪽 solution.Help를 찾을 수 없습니다 : 아래의 같은 일반적인 URL 형식

이 문제를 해결하려면 ... 미리 감사드립니다 ...

답변

2

이 쿼리 매개 변수 스타일에는 이름이 있습니까? 나는 그것에 대해 들어 본 적이 없다. 주위에 몇 가지 표준이 있다면, 그것을 파싱 할 모호한 모듈을 찾을 수있을 것입니다. 그렇지 않으면 문자열 자체를 파싱해야 할 가능성이 큽니다. 이 시점에서

var url = require('url'); 
var parsed = url.parse('http://xxxxxxxx:3000/map70/places?node[level0=12&level1=34&level2=234][ids=1,2,3,4][key=xxxxxxxxxx][val=2011]'); 
var query = parsed.query; 

query 지금 node[level0=12&level1=34&level2=234][ids=1,2,3,4][key=xxxxxxxxxx][val=2011] 포함, 당신은 문자열 연산과 떨어져을 끌어 시작할 수 있습니다

당신은 노드의 url 모듈과 물건의 보류를 얻을 수 있습니다.

[업데이트]

난 단지 당신이 게시 된 URL을거야, 그래서 당신은 아마 당신이 구문 분석 얻을 걱정하는 모든 매개 변수를 보장하기 위해 몇 가지 테스트 케이스를 작성해야 할 것입니다,하지만 난 할 수 있었다 이런 식으로 뭔가를 얻을 :

var querystring = require('querystring'); 

var q2 = query.slice(5, -1); 
// q2 == "level0=12&level1=34&level2=234][ids=1,2,3,4][key=xxxxxxxxxx][val=2011" 

var q3 = q2.replace(/\]\[/g, '&'); 
// q3 == "level0=12&level1=34&level2=234&ids=1,2,3,4&key=xxxxxxxxxx&val=2011" 

querystring.parse(q3); 
// returns: 
// { level0: '12', 
// level1: '34', 
// level2: '234', 
// ids: '1,2,3,4', 
// key: 'xxxxxxxxxx', 
// val: '2011' } 

당신은에 모두 함께 결합 할 수 있습니다 : 당신의 소중한 시간을

querystring.parse(query.slice(5, -1).replace(/\]\[/g, '&')); 
+0

감사 @Brandon Tilley..Thanks ,, 나는 N입니다 그 URL 매개 변수 주위에 일하고있어. 그래서 만약 당신이 그것에 관한 링크가 있다면, 게시, 그것을 통해 갈 것입니다 .. 이미 몇 가지 그런 자료를 갔다, 어떤 위대한 링크가 있으면 그것을 게시하십시오 .. – Subburaj

+0

@Subburaj 전 문자열을 구문 분석하는 데 좀 더 깊이 들어가기 위해 내 대답을 업데이트했습니다 ... 마일리지가 다를 수 있습니다! –