问题标签 [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 投票
1 回答
261 浏览

elasticsearch - 对于 Rust Rocket 框架,是否可以将 GraphQL 连接到弹性搜索?

我已经设置了 Rust Rocket Web 框架,并且能够使用官方的 Elasticsearch Rust crate 来设置客户端并从 elasticsearch 索引中获取文档。但是,在查看此示例https://github.com/davidpdrsn/graphql-app-example时,我注意到此处连接到 Postgres 的 GraphQL 使用 Rocket 提供的 .attach() 方法。我尝试通过在 elasticsearch 客户端上实现 Fairing 特征来对我的 elasticsearch 客户端做同样的事情,但这是不可能的。我收到以下错误:error[E0117]:只有当前 crate 中定义的特征可以为任意类型实现。这是有道理的,所以我尝试包装类型,然后在其上实现 Fairing 特征并得到一个单独的错误:(dyn elasticsearch::http::transport::ConnectionPool + 'static)不能在线程之间安全地发送。这也是有道理的,因为 RUST 的官方 elasticsearch 客户端是异步的。

所以我的问题是:elasticsearch、graphql 和 Rust Rocket 可以一起工作吗?如果他们可以一起工作,有什么好的工作例子吗?我做了很多谷歌搜索,并在 github 上搜索了一些 repos,但无法找到解决方案。

0 投票
0 回答
108 浏览

rust - 请求的 Rust-rocket 匹配花费了很长时间(5 分钟)

我有一个小型火箭应用程序,其中包含一些控制器。

有一次请求花费的时间太长,当我查看日志时,这是获取 GET 请求和将其与控制器匹配的时间:

听到的是日志条目:

您可以看到它从 16:11:30 开始并16:16:28匹配。

那是相隔五分钟。我只有 5 个他可以尝试匹配的控制器。

这是控制器的代码:

这是我主要的火箭代码(我删除了除了 sequence_check 之外的所有路线):

有人有同样的错误或知道问题出在哪里吗?是否有可能从火箭上看到更多日志,这样我就可以指出我自己的错误?

0 投票
1 回答
136 浏览

rust - 托管状态的静态生命周期要求

我在State使用Rocket. 此状态包含数据库连接和该数据库上的游标集合。每一篇论文都有关于数据库的参考。

对该状态的其中一项操作需要在数据库上创建一个新游标并保留它以供以后使用。不幸的是,我遇到了一辈子的问题。通常,我处理这些没有问题,但现在,我没有想法......

我在一个简短的示例中重新创建了下面的问题。

任何线索将不胜感激。与此同时,我会继续挖掘。

非常感谢!

0 投票
0 回答
648 浏览

rust - 如何在 Rocket 响应器中转发来自 reqwest::blocking::Body 的数据?

我可以使用 reqwest 请求一个 PNG 文件,我可以通过copy().

我想将图像作为火箭响应转发。我不知道如何在那里传递响应内容。

我尝试使用Content(ContentType::PNG, response),但不知道如何匹配已实现rocket::response::Responder特征的类型。Rocket 不能使用Bytes返回的类型response.bytes()

0 投票
1 回答
2282 浏览

rust - Rocket 的 Responder 特性未针对 Result 实现

我最近开始学习 Rust,目前正在尝试创建一个小型 API;我已经为 API 响应和错误的枚举创建了自己的结构:

然后我Responder<'_>为我的 API Response 结构实现了 trait:

但是,当我尝试使用提到的内容时,似乎我不能让我的函数返回 a Result<JsonValue, Errors>。我不太确定这个问题,也不是我对 Rust 的经验,所以任何文档/指针都将不胜感激。

这是返回响应类型的函数。

旁注:请记住,我仍然是 Rust 的初学者,我的错误处理/代码一般不是最好的。


编辑:我忘了包括错误堆栈:

0 投票
1 回答
347 浏览

javascript - 通过 JSON 格式的 AJAX 将图像发送到 Rocket 服务器的正确方法

我正在尝试使用从客户端上传图像的Rocket构建一个 Rust Web 应用程序。

我的问题是我不知道如何在客户端将上传图像(像素)的数据编码为 JSON。此数据稍后将通过 AJAX 发送。

这里的 POST 请求抱怨image不是String,而是map。这是可以理解的,但我真正想做的是在 Javascript 端(中的图像xhr.send())发布正确的数据,因为我相信这是我缺少的部分。

图片由客户端上传:

这是main_moc.js.

我还尝试将文件中的图像写入画布并使用发送数据,context.getImageData()但这也不起作用(客户端错误)。

0 投票
1 回答
435 浏览

rust-rocket - 如何设置(Rust)Rocket API 端点的模板响应的 HTTP 状态代码?

我的 Rocket API 中有以下登录 POST 端点处理程序:

我正在尝试设置 HTTP 状态响应代码,但找不到正确的方法?最好用 200 以外的值通知浏览器登录不成功

0 投票
2 回答
1869 浏览

database - 如何在生产中使用 Rocket 运行 Diesel 迁移?

我需要在生产环境中为基于 Rocket 的应用程序运行 Diesel 数据库迁移。通常有几种方法可以为数据库执行迁移:

  1. 在应用程序启动时。
  2. 与应用程序启动分开。

我更喜欢使用--migrate应用程序二进制标志调用的第二个选项,但由于目标应用程序相当简单,第一种方法就可以了。

Diesel 问题跟踪器中有一个关于在生产中运行迁移的线程,并建议如何执行此操作:

  1. 添加diesel_migrations到您的依赖项
  2. 在你的板条箱中加入一个extern crate diesel_migrations,并确保用它来装饰它#[macro_use]
  3. 在代码的开头,添加embed_migrations!()
  4. 要运行迁移,请使用embedded_migrations::run(&db_conn)

main.rs我做了:

这会导致错误:

如何解决?

0 投票
1 回答
501 浏览

rust - 构建 rust Rocket api 时出现“root 中没有'Json'”错误

所以我试图按照https://medium.com/sean3z/building-a-restful-crud-api-with-rust-1867308352d8中的示例构建一个简单的 REST API。中途,锈编译器给了我以下错误: unresolved imports 'rocket_contrib::Json', 'rocket_contrib::Value' no 'Json' in the root

我似乎无法弄清楚我做错了什么。

这是我的 Cargo.toml:

hero.rs:

和 main.rs:


我在第 10 行得到错误: use rocket_contrib::{Json, Value};



我听从了Sven Marnach 的 建议,现在它起作用了。我将 main.rs 文件更改为以下内容:

0 投票
1 回答
59 浏览

rust-rocket - 如何使用 Rocket 定义可选子路径?

我正在尝试在 Rocket 服务路径下打包一个 Vue 应用程序(在 下/admin)。我写了以下匹配器:

但是,有了这个,当我尝试访问时/admin,我得到一个 404。我需要创建一个只有“/admin”的新路由并重定向到/admin/index.html,但这并不理想。

我认为将其定义PathBuf为 anOption会使它成为可选的,但它似乎不起作用。

当请求既有路径又没有路径时,如何使请求匹配器工作?