2016-11-08 34 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

非常感謝! –