修改了get_weather方法,现在可以实现前端的需求了

This commit is contained in:
2025-09-27 17:29:46 +08:00
parent 6d680260a2
commit 02703de89c
3 changed files with 37 additions and 7 deletions

View File

@@ -251,8 +251,38 @@ async fn get_weather(
pool: web::Data<PgPool>,
claims: web::ReqData<Claims>,
) -> impl Responder {
let page = query.get("page").and_then(|v| v.as_i64()).unwrap_or(1) as i32;
let limit = query.get("limit").and_then(|v| v.as_i64()).unwrap_or(10) as i32;
// 同时处理数字和字符串类型的page参数
let page = match query.get("page") {
Some(v) => {
// 尝试直接解析为数字
if let Some(num) = v.as_i64() {
num as i32
}
// 尝试将字符串解析为数字
else if let Some(s) = v.as_str() {
s.parse().unwrap_or(1)
}
// 解析失败用默认值
else {
1
}
}
None => 1, // 无参数时用默认值
};
// 同理优化limit参数解析
let limit = match query.get("limit") {
Some(v) => {
if let Some(num) = v.as_i64() {
num as i32
} else if let Some(s) = v.as_str() {
s.parse().unwrap_or(10)
} else {
10
}
}
None => 10,
};
println!("获取天气数据列表, 页码: {}, 每页条数: {}", page, limit);