2014-10-13 8 views
2

노드 API를 개발 중입니다. 끝 점이 있습니다 GET /messagesExpress + node.js API 필터링

이 메시지는 모든 메시지를 반환합니다. 나는 필터 문 제가 DB와 ORM과 PostgreSQL과 같은 sequelize를 사용하여이

{fieldName1}={fieldValue1}&...{fieldNameN}>{fieldValueN}. 
Operations can be =, > or <. <and> operations are only for number, integers and dates 

처럼 될 것

GET /messages?filter=my_filter_string&limit=10&offset=10 

처럼이 엔드 포인트 무언가에 페이지 매김을 갖고 싶어. 제 질문은 my_filter_statement를 구문 분석하고이를 sequelize 용 검색 기준 오브젝트로 변환하는 방법입니다. 내가

GET /messages?filter="id=10&contentlength>20"&limit=10&offset=10 

좋아 API가

+0

비슷한 문제가 궁금하거나 .. filter = {where : {id : 10}}하지만이 방법이 전혀 안전하지 않을 수도 있습니다. –

답변

0

당신은 예를 들어,이 수 작동하지 않는 전화 또한 경우 : 노드에서 다음

GET /messages?greater=1&less=5&limit=10&offset=10 

을 그리고 :

var url = require('url'); 
var url_parts = url.parse(request.url, true); 
var query = url_parts.query; 

그리고 보다 큰/미만 ("gt"및 "lt"으로 단축 될 수 있음)과 같은 검색어 매개 변수를 내가 필요한 기호에 일치 시키십시오. 네 성명서?

+0

나는 GET/messages와 같을 수 없다. 더 큰 것 = 1 & less = 5 & limit = 10 & offset = 10' 매우 구체적인 요구 사항이다. 난 내 질문에 언급 한대로 개발해야한다 – Syed

+1

그 경우, 당신은 encodeURI 및 decodeURI 사용할 수있을 것이라고 확신합니까? – graemeboy

+0

특정 유스 케이스를 줄 수 있습니까? API를 어떻게 호출 할 수 있습니까? 내 말은'my_filter_statement'를 인코딩해야한다는 것입니다. 서버 측에서 어떻게 구문 분석 할 수 있습니까? 이 케이스를 포함하도록 답을 수정할 수 있습니까? 아니면 모든 예제 나 문서를 알려줄 수 있습니까? – Syed