我收到的请求看起来像这样:
/api/stores?offset=10&limit=15?order=+name?filter=name='Tesco|distance=4
我需要将查询中的+名称解析为对象,如果在名称前为+ {name: 1},
,在名称之前为{name:-1}
if。过滤查询应该看起来像{name:'Tesco', distance:4}
任何人都可以帮助我做到这一点,以达到最佳效果
答案 0 :(得分:0)
无论是谁向你发送垃圾网址都应该被打,如果你没有机会改变它,你可以使用这个黑客。
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
使用m 1和m [2]可以构建一个新对象。
严重的是,该网址是垃圾,如果可以,请修复该问题,您可以使用非黑客获取这些值并使用querystring.parse构建对象。