2016-11-08 2 views
-2

У меня есть запрос ПОЛУЧИТЬ глядя, как это:Анализировать строку запроса к объектам node.js

/api/stores?offset=10&limit=15?order=+name?filter=name='Tesco|distance=4 

мне нужно разобрать + имя моего запроса на объект, глядя, как: {name: 1}, если + перед именем, и {name:-1} если - перед тем имя. И фильтр запрос должен выглядеть {name:'Tesco', distance:4}

Может кто-нибудь помочь мне сделать это для того, чтобы достичь максимальной производительности

ответ

0

Кто посылает вам этот мусор URL должен пробиваться, если у вас нет шансов изменить его, вы можете используйте этот хак.

var url = "/api/stores?offset=10&limit=15?order=+name?filter=name='Tesco|distance=4"; 
var m = url.match(/name='(.+?)\|distance=(\d+)/); 
console.log(m[0]); // returns name='Tesco|distance=4 
console.log(m[1]); // returns Tesco 
console.log(m[2]); // returns 4 as a string value 

Использование м 1 и м [2], можно построить новый объект.

Серьезно, что этот URL-адрес является мусором, устраните эту проблему, если можете, и вы можете использовать не-хак, чтобы получить эти значения и построить свой объект с помощью querystring.parse.

+0

спасибо! –