Обычный запрос GET не имеет аргументов, верно? Он просто получает все данные. Дело в том, что мне нужно получить Салоны, которые находятся ближе к заданной точке координат (широта/долгота), и поэтому мне нужно передать 2 параметра в запрос GET ( express js ).
Я использую УЗЕЛ JS, ЭКСПРЕСС JS, МОНГО БД. Во внешнем интерфейсе я использую Android-студия и кодирую КОТЛИН.
Следующий код представляет собой интерфейс (frontend/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.info("Getting the closer salons...");
res.send({saloes})
},(e) => {
res.status(400).send(e);
});
});Один важный момент: если я не передаю никаких параметров, а выполняю только обычный запрос и использую жестко закодированные lat-lng (например: -44.41241, -22.412412), он работает.
Проблема заключается в передаче 2 параметров.
Как я могу это решить?
Спасибо!
Обычный запрос GET не имеет аргументов, верно? Он просто получает все данные. Дело в том, что мне нужно получить салоны, которые находятся ближе к заданной точке координат (широта/долгота), и поэтому мне нужно передать 2 параметра в запрос GET (express js).
вы должны отправить данные по пути следующим образом:
@GET("/salao/{lat}/{lng}")
Call<Response> getAllSaloes(@Path("lat") Long lat, @Path("lng") Long lng);
Это отправит данные в виде /salao/123.21/2323.
Сработало... спасибо
В Android (Java/Kotlin) вы передаете данные непосредственно методу метода
getAllSaloes(-44.41241, -22.412412). Или я не понимаю проблему/вопрос.