问题标签 [rust-rocket]

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 投票
2 回答
3993 浏览

rust - 我可以在 Rocket 中使用异步 fn 作为处理程序吗?

我正在使用 Rocket 框架,我想在我的处理程序中发出一个异步 HTTP 请求,就像这样

结果,我得到了下一个错误

我试图编写实现但失败了。有没有办法为 impl Trait 实现 trait?

或者也许指定 async fn 的返回类型,以便我可以返回具有必要特征的自定义类型?

0 投票
2 回答
543 浏览

rust - 当我尝试提交 Rocket Rust 表单时出现错误 422

我正在尝试制作一个表单来在 Rocket Rust 中创建帖子(我还没有访问数据库)。当我尝试提交表单时,我收到错误 422。

错误:

处理程序代码:

表单结构:

HTML 表单:

PS 我认为问题出在 HTML 表单中,而不是 Rust。如果问题出在 Rust 中,它会给出另一个错误。

0 投票
1 回答
360 浏览

mysql - 如何在柴油 model.rs 中用空格编写列名?

我正在尝试使用Diesel来管理我的数据库以供使用Rocket,但我一直在为我的表编写 models.rs:

在这里,我对如何在models.rs 的struct 中为带有空格的column_names 编写标识符感到困惑。

我指的是 Diesel 和 RUST 的官方指南。

0 投票
1 回答
132 浏览

rust - 如果我在 GET 上使用 FromRequest 参数,Rocket 找不到路线

我不能使用通过 #get 方法实现 FromRequest 的参数。它与#post完美配合

在下面的代码中,只要我不使用标头参数,/keyserver/key (GET) 就可以工作。否则,我得到一个:

如何在 GET 方法中获取标头信息?

/keyserver/add_key (POST) 与标头参数配合良好。

0 投票
1 回答
417 浏览

rust - 如何将 rust-rocket 服务器打开到局域网?

我试过rocket,cargo run,访问http://localhost:8000,看起来不错。
但是,我无法从局域网中的其他 PC 访问http://192.168.developing.pc:8000
我在开发PC时尝试了http://192.168.developing.pc:8000但无法访问。

起初我以为它与防火墙有关,但我很困惑,因为它无法从自己的机器访问。

我能怎么做?

我对网络完全不熟悉,所以我不确定是否只有我构建的可执行文件就足够了,或者是否需要其他服务,例如 nginx 或 IIS 之类的。

我正在 Windows 10 中开发并希望最终部署在 ubuntu 上。(ubuntu机器还没准备好)

谢谢你。

0 投票
1 回答
689 浏览

rust - 在 Bazel 中编译 Rocket

我正在尝试获得以下场景的工作原型:

  • 语言:锈 ( rustc 1.45.0-nightly (ad4bc3323 2020-06-01))
  • 框架:Rocket v0.4.4
  • 构建工具:Bazel
  • 平台:Mac OS X / Darwin x64

运行bazel build //web-api产生以下错误。我相信,基于查看Cargo.lock文件,这是因为 Rocket 对hyper库的依赖指定了对库的依赖log 0.3.9。无论出于何种原因,它都没有使用更新的log=0.4.x. 也就是说,我不知道它为什么要拉这个库,因为如果我手动构建它,它工作正常。

以下是我的目录结构:

为了设置,我按照github 页面cargo-raze的说明进行了以下操作:

generate-lockfile创建Cargo.lock文件,cargo raze创建文件和子目录BUILD.bazel的所有内容。)remote

然后为了执行 bazel 构建,我回到 root 并运行bazel build //web-api,这会产生上述错误。

这是我的WORKSPACE文件:

这是我的web-api/BUILD文件:

还有我的web-api/cargo/Cargo.toml文件:

我已经没有关于尝试什么的想法了。我可以在没有 Bazel 的情况下编译它,只需使用 rust(尽管显然文件位于稍微不同的位置)。我可以让它在 Docker 容器中编译。我只是无法让 Bazel(必须使用 cargo raze,无论是在供应商模式还是远程模式下)成功运行:我认为编译目标或夜间构建存在一些不匹配,但没有正确设置 - 但我不是确定如何诊断或克服它。

这是一个包含我尝试过的文件/结构的存储库的链接。

0 投票
1 回答
393 浏览

rust - 将模板渲染到 rust Rocket 中的字符串

我正在用 rust Rocket 写一个小网站。我正在使用车把模板,您返回Template表单处理程序的方式非常方便。但我也想将我的模板引擎用于我发送的电子邮件。问题是,其中的模板rocket_contrib并不真正支持渲染到String.

有一种方法show()可以创建Option<String>,但不应该使用该方法。

将位于路径根目录下的名为 name 的模板与上下文上下文一起呈现为字符串。这种方法非常慢,不应该在任何正在运行的 Rocket 应用程序中使用。此方法仅应在测试期间用于验证模板响应。对于其他用途,请render改用。

该方法render()是您通常使用的方法,但是这个方法返回 a Template,这就是我开始使用的方法...您返回这些方法,并且 Rocket 会发挥它的魔力来生成生成的 html 页面。

有什么方法可以在 Rocket 中使用我的模板来发送电子邮件?我的邮件 (lettre) 需要一个字符串。

0 投票
6 回答
4124 浏览

http - 如何为 Rocket.rs 设置 CORS 或 OPTIONS

我有一个运行 Rocket.rs 的后端,我的 Flutter Web 应用程序向它发送请求,但它无法通过 OPTIONS 响应。

我尝试将 CORS (rocket_cors) 添加到后端并获得选项响应,但它仍然发回:

我在我的火箭项目中添加了以下内容:

我的颤振应用程序正在运行这个请求:

问题:这是响应 OPTION 请求的正确方法吗?如果不是,我如何在 Rocket.rs 中实现它?

0 投票
1 回答
393 浏览

reactjs - 从 React 应用程序向 Rocket 后端发送 POST 请求时出错返回失败

我正在编写一个简单的网络,其中 Rocket 作为后端,React 作为前端。

登录页面的代码片段如下所示

代码main.rs

和尝试发送发布请求时的 React 代码

如果我输入了正确的电子邮件和密码,该代码就可以正常工作。但是,如果我输入错误的凭据,它无法捕获错误消息。Rocket log 登录成功和登录失败是一样的,分别是

我在浏览器中捕获的错误日志Error: "Request failed with status code 404"不是在 post 函数中硬编码的预期错误消息。

我认为这可能与Rocket 内部有关Optionpreflight处理,这可能是出于安全目的。但是我怎样才能抑制系统错误并让我的代码接管呢?

我已经阅读了之前的 SO 帖子,例如state undefined: while 从 react 应用程序和 GitHub 问题发送帖子请求,例如https://github.com/SergioBenitez/Rocket/issues/25。仍然找不到我的问题的答案。

提前致谢!

0 投票
0 回答
106 浏览

security - 使用 Rust Rocket Web 框架保存 ApiKey 的安全解决方案是什么?

我来自 .NET 背景,之前使用过ProtectedAppSettings的 IIS 加密。有了它,它指向一个 IIS 加密的加密文件,并且在运行时它允许应用程序读取这些值。除此之外,我们可以使用 Octopus Deploy 来生成这个文件,这样某些团队成员就无法访问这些值,即使他们可以访问被撤销某些权限的机器,它也不会允许解密这个文件。

是否有在 Rust 中存储运行时值的“标准”方式?一直在寻找一种标准方法,但看起来大多数人运行他们自己的解决方案或将这些 API 值存储为环境变量,任何建议和来源可能会帮助您解决这个问题的一些经验。