rust - 如何在镍路由中使用多个变量?

标签 rust nickel

Nickel声明可以在 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")
    // );
});

最佳答案

您需要一个分隔符。例如:

#[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 创建 session ,而应该使用 POST

关于rust - 如何在镍路由中使用多个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30928235/

相关文章:

rust - 如何用 Rust 实现应用程序状态?

rust - 阶乘 if 语句期望 '()' 找到整数

rust - 如何确保在函数调用后结束不可变借用以启用可变借用?

rust - 我如何在 Rust 中获取 SHA256 的前 4 个字节?

rust - 第一次使用 nickel.rs 发布表单数据,随后返回 404

rust - 如何重组结构,使得 'Cannot borrow ` x` as mutable more than once a time' 不会发生

rust - 借用时临时值(value)下降,但我不想租借

rust - 不能借用 `*request` 作为可变的,因为它也被借用为不可变的

json - 如何使用 Nickel 模板返回 JSON 文件?