普通的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个参数。
我该如何解决?
谢谢!
答案 0 :(得分:0)
您必须在这样的路径中发送数据:
@GET("/salao/{lat}/{lng}")
Call<Response> getAllSaloes(@Path("lat") Long lat, @Path("lng") Long lng);
这将以/salao/123.21/2323的形式发送数据