rust - 如何将值发送到 Nickel 中间件函数

标签 rust nickel

考虑以下代码:

extern crate nickel;
use nickel::{Nickel, HttpRouter, Request, Response, MiddlewareResult};

fn main() {
    let data = "wanted";
    let mut server = Nickel::new();
    server.get("/", landing);
    server.listen("localhost:6767");
}

fn landing<'a>(_: &mut Request, response: Response<'a>) -> MiddlewareResult<'a> {
    response.send("not wanted")
}

我想在函数登陆中使用数据

最佳答案

镍示例显示 a way to pass a configuration进入服务器对象。

本质上,您使用 with_data 方法实例化一个 Nickel 实例:

struct MyConfig {
    greet: String,
}

let my_config = MyConfig { greet: "hello".to_string() };

let mut server = Nickel::with_data(my_config);

并且您的处理程序可以通过 server_data 方法访问它:

let my_config = req.server_data();
res.send(&*my_config.greet);

因此,将其应用于您的特定示例..您的代码变为:

extern crate nickel;
use nickel::{Nickel, HttpRouter, Request, Response, MiddlewareResult};

fn main() {
    let data = "wanted";
    let mut server = Nickel::with_data(data);
    server.get("/", landing);
    server.listen("localhost:6767");
}

fn landing<'a, 'mw>(request: &mut Request<&'a str>, response: Response<'mw, &'a str>) -> MiddlewareResult<'mw, &'a str> {
    response.send(*request.server_data())
}

导致:

Nickel

关于rust - 如何将值发送到 Nickel 中间件函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119477/

相关文章:

rust - 根据枚举是什么变体,如何返回其中的2种可能的类型之一?

rust - "for<>"语法与常规生命周期界限有何不同?

rust - 找不到 nickel.rs 帖子重定向

rust - 如何创建使用数据库连接的 Nickel 处理程序?

rust - 如何使用 Nickel 框架呈现网页?

rust - Substrate:如何与 session 模块集成

database - diesel需要安装mysql和sqlite吗?

linux - 添加了对mongodb的异步调用后,带有mongodb项目的actix Web无法构建

rust - 如何使用 'on_send'镍 react 的方法?

rust - 如何在 Rust 和 Nickel 中将查询结果选择为 JSON?