问题标签 [rust-warp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
55 浏览

rust - 无法使用 Warp 解决 Rust 编译错误

我正在尝试使用 Rust Warp API 使用一个小应用程序,但超级坚持构建代码。我在这里尝试遵循此示例,但无法遵循我做错了什么。有人可以帮我弄这个吗?

错误:

0 投票
1 回答
70 浏览

rust - 进入对于字符串

我正在尝试Stringwarp::server().run()函数作为监听地址。但我不知道如何实现Into<SocketAddr>字符串。

代码

错误

0 投票
0 回答
39 浏览

rust - 为什么 Rust 返回类型与 IDE 不同?

使用上面的代码,Idea 显示错误消息“不匹配的类型 [E0308] 预期BoxedFilter<(impl Reply,)>,找到BoxFuture<&str>”。但它建立了成功。

0 投票
1 回答
86 浏览

rust - 在 rust 中重定向或显示带有扭曲的 HTML?

我正在用 warp 和 rust 进行一些代码培训,我想做如下的事情:

这段代码的问题在于,由于同一路径中有两种不同的返回类型,代码无法编译。有没有合适的方法来完成我想要的行为?提前致谢!

TL; DR:我想实现一个路径,该路径/my/:file显示 HTML 文件的内容(如果存在)或重定向到/404以防出现错误。

编辑:添加Uri::from_static了一些小错别字,以便在编译时得到正确的错误。

0 投票
1 回答
64 浏览

rust - 当我使用 warp 时,它只能在 localhost 上工作,但不能在公共网络上工作

我写了一个基于 rust-warp 的 Web 应用程序,它运行良好。但它只能通过 localhost:3030(127.0.0.1:3030) 访问。现在我想通过公共网络(101.35.56.79)/局域网访问它(192.168.1.18),但它不起作用。我找不到这个问题的相关信息。这是我的代码:

我以为问题出在

但我在 warp 的文档( https://docs.rs/warp/latest/warp/ )中找不到有关它的更多详细信息。我需要你的帮助,谢谢。

0 投票
1 回答
45 浏览

rust - Warp:单条路线有效,使用 .or() 的多条路线无效

希望有人可以帮助我理解为什么warp使用这样的单一路线运行编译得很好:

但是像 repo 中的示例那样更改该warp::serve()行以提供两条路由会导致编译错误:

我不明白编译器要求我改变什么。

0 投票
1 回答
55 浏览

rust - 循环遍历不同线程中的 arc 和 pop 值

我正在尝试arc为 Warp 路由实现共享状态 ()。鉴于此主要功能:

现在,如果我点击/call路线,我可以看到它Acknowledgement已添加到队列中。

最后loop应该在添加队列时从队列中弹出每个值。现在它什么也没做。

我尝试将其包装在 a 中tokio::spawn,但仍然没有结果(没有任何内容打印到标准输出)。

我究竟做错了什么?

0 投票
1 回答
30 浏览

rust - 如何在将变量移入经纱的 .then() 过滤器之前克隆变量?

我有以下代码片段:

这给了我一个错误:

这是有道理的,我正在使用 key 变量,从而将其移出环境。我想不通的是如何在不移动密钥的情况下让这个异步闭包工作?我试过像这样克隆它:match verify_msg(&key.clone(), &headers, &bytes)但它仍然不起作用。我想这是有道理的,因为变量仍然在闭包内被引用。那么,如何在密钥被移动之前对其进行克隆呢?

我能够使它与 .map() 和常规(非异步)闭包一起使用,但是 process_msg() 函数是异步的,所以我认为这行不通。

编辑:@t56k 的回答让我走上了正轨,但效果不佳。朝着将异步块放入闭包的方向前进并遵循编译器的建议最终让我得到了这个:

即使我使用了move关键字,由于某种原因它也能完美地工作。我想我只有在key不在街区内的情况下才允许移动async?无论如何,我的问题已经解决了,但如果有人能解释为什么这样做我很乐意接受。

0 投票
1 回答
31 浏览

rust - Rust warp+sqlx 服务:将 DBPool 从 main 传递到处理程序的惯用方式

这里是一个 Rust 新手,试图通过结合来编写一个 web 服务

https://github.com/seanmonstar/warp/blob/master/examples/todos.rshttps://github.com/launchbadge/sqlx/blob/master/examples/postgres/todos/src/main.rs

以下代码处于运行状态。我的问题是,我需要为每个处理程序克隆 dbpool 吗?Rust 的惯用方式是什么(我来自 Java->Kotlin->Go 背景,FWIW)