如何使用改型将2个参数传递给GET请求?

时间:2019-03-11 10:10:59

标签: android node.js mongodb express retrofit

普通的GET请求没有任何参数,对吗?它只是获取整个数据。问题是:我需要获取更接近给定坐标点(纬度/经度)的沙龙,这就是为什么我需要将两个参数传递给GET请求(express js)的原因。

我正在使用 NODE JS EXPRESS JS MONGO DB 。 在前端,我正在使用 Android Studio ,并使用 KOTLIN 进行编码。

以下代码是接口(前端/ kotlin):

    @GET("/salao")
    fun getAllSaloes(@Query("lat") lat: Float,
                     @Query("lon") lon: Float): Call<salaoList>

,以下代码是后端代码(表达js):

    app.get('/salao/:lat/:lon', (req,res) => {
      var lat = req.params.lat;
      var lon = req.params.lon;

      Salao.find({
        "loc": {
            $near: {
              $geometry: {
                 type: "Point",
                 coordinates: [ lat, lon ] // Latitude - Longitude

              },
            }
          }
      }).then((saloes) => {
          console.log("Getting the closer salons...");
          res.send({saloes})
      },(e) => {
          res.status(400).send(e);
      });
    });

重要的一点:如果我不传递任何参数,而仅执行常规查询并使用经硬编码的lat-lng(例如:-44.41241,-22.412412),则可以正常工作。

问题在于传递2个参数。

我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须在这样的路径中发送数据:

 @GET("/salao/{lat}/{lng}")
Call<Response> getAllSaloes(@Path("lat") Long lat, @Path("lng") Long lng);

这将以/salao/123.21/2323的形式发送数据