2016-11-08 49 views
-2

我有一个GET请求看起来像这样:解析查询字符串对象的Node.js

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

我需要从我的查询解析+名对象看起来像:{name: 1},如果+名称之前,和{name:-1} if - 名称前。而过滤器的查询应该看起来像{name:'Tesco', distance:4}

谁能帮助我做到这一点,以达到最佳性能

回答

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 

使用米1且m [2],你可以建立一个新的对象。

严重的是,该URL是垃圾,如果可以的话,修复该问题,并且您可以使用非黑客获取这些值并使用querystring.parse构建您的对象。

+0

非常感谢! –