Как использовать несколько переменных в маршрутах с никелем?
Никель заявляет, что вы можете использовать переменные в URL, что звучит очень полезно, но возможно ли использовать несколько переменных?
Что-то вроде:
www.example.com/login/:userid?:apikey?:etc
server.get("/start/:userid?:passwd", middleware! { |request|
// format!("This is user: {:?} = {:?}",
// request.param("userid"),
// request.param("passwd")
// );
});
1 ответ
Решение
Вам нужен разделитель. Например:
#[macro_use] extern crate nickel;
use nickel::Nickel;
fn main() {
let mut server = Nickel::new();
server.utilize(router! {
get "/start/:userid/:passwd" => |request, _response| {
println!("this is user: {:?} = {:?}",
request.param("userid"),
request.param("passwd")
);
"Hello world!"
}
});
server.listen("127.0.0.1:6767");
}
По вашему вопросу это выглядит так, как будто вы ожидаете passwd
как своего рода параметр запроса, а не в URL, хотя.
Я бы предостерег вас от создания сессии с GET
и вы должны использовать POST
вместо.