Как передать 2 параметра в GET-запрос, используя модификацию? - PullRequest
0 голосов
/ 11 марта 2019

Нормальный запрос GET не имеет аргументов, верно?Он просто получает все данные.Дело в том, что мне нужно выбрать Салоны, которые находятся ближе к заданной координатной точке (широта / долгота), и поэтому мне нужно передать 2 параметра в запрос GET (express js).

Я использую NODE JS , EXPRESS JS , MONGO DB .Во внешнем интерфейсе я использую Android Studio и кодирую с помощью KOTLIN .

Следующий код является интерфейсом (frontend / kotlin):

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

, а следующий код является кодом бэкэнда (Express 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), это работает.

Проблема в передаче двух параметров.

Как я могу ее решить?

Спасибо!

1 Ответ

0 голосов
/ 11 марта 2019

вы должны отправить данные в пути, как это:

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

Это отправит данные в виде /salao/123.21/2323

...