Node.js Express REST API – 使用GET请求访问JSON url params

我有一个REST端点是/ geo / search,并且需要一些长/纬度坐标作为请求的一部分发送(GEO多边形)。

  • 有没有什么办法可以在GET请求中使用JSON? 我在想这个URL编码可能是一个解决scheme:

    var data = encodeURIComponent({"coordinates":[[-122.610168,37.598167],[-122.288818,37.598167],[-122.288818,37.845833],[-122.610168,37.845833],[-122.610168,37.598167]]}); 
  • 我将如何访问路线中的这些参数?

回答#1 – 感谢@ mccannf

使用JQuery.param:

客户:

 var test = {"coordinates":[[-122.610168,37.598167],[-122.288818,37.598167],[-122.288818,37.845833],[-122.610168,37.845833],[-122.610168,37.598167]]}; console.log($.param( test )); 

输出:

 coordinates%5B0%5D%5B%5D=-122.610168&coordinates%5B0%5D%5B%5D=37.598167&coordinates%5B1%5D%5B%5D=-122.288818&coordinates%5B1%5D%5B%5D=37.598167&coordinates%5B2%5D%5B%5D=-122.288818&coordinates%5B2%5D%5B%5D=37.845833&coordinates%5B3%5D%5B%5D=-122.610168&coordinates%5B3%5D%5B%5D=37.845833&coordinates%5B4%5D%5B%5D=-122.610168&coordinates%5B4%5D%5B%5D=37.598167 

回答#2 – 感谢@Brad:

服务器 – 快车路线:

 router.get('/search_polygon', function(req, res) { console.log('Server received: ' + JSON.stringify(req.query.coordinates)); ... 

输出:

 Server received: [["-122.610168","37.598167"],["-122.288818","37.598167"],["-122.288818","37.845833"],["-122.610168","37.845833"],["-122.610168","37.598167"]] 

我的问题是试图通过这些作为path的一部分,而不是他们应该的参数。