问题标签 [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 回答
1436 浏览

javascript - 请求 rust Rocket 服务器获取来自 JavaScript 应用程序的错误连接被拒绝

我在 localhost 的机器上运行了一个 rust 服务器,端口:4200。我正在尝试使用使用 axios 库的 JavaScript 客户端向该服务器发出请求。

运行时的代码给出以下错误:

错误:在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14) 处连接 ECONNREFUSED 127.0.0.1:4200

我尝试重写代码以使用 fetch 库。这也返回一个连接被拒绝的错误。

从 Postman 尝试时,API 正在按要求工作。Get 调用也在浏览器中工作。从 JavaScript 调用时,无法找出此调用拒绝连接的原因。

我在 rust 服务器中启用了 CORS 选项。

编辑:

从我的机器运行时出现上述错误的客户端代码:

在我的机器上运行的浏览器请求: http://localhost:4200/createOffer/1/license

0 投票
1 回答
94 浏览

rust - Rocket 有类似 Flask 的蓝图吗?

在 Python 的 Flask 中,有一个叫做 blueprints 的特性,SO 甚至对它有一个很好的概述。Rocket 是否有类似的东西,所以我可以更好地构建我的代码而不是在main中安装每条路线?

0 投票
1 回答
2578 浏览

json - 如何使用 Rocket 响应包含 JSON 数据的 POST 请求?

我正在尝试使用Rocket crate创建后端:

当我运行cargo run一切正常但是,当我使用邮递员发送 POST 请求进行测试时,我收到此错误:

我已将标头内容类型设置为 JSON 和其他可用的语言,但使用 Rocket 我无法让它工作。

这是我的 JSON 正文:

如何解决这个问题?

0 投票
2 回答
1035 浏览

database - 如何从 Rocket 的环境中建立数据库连接?

我的 Rocket 应用程序有以下工作数据库连接设置:

main.rs:

Rocket.toml:

我想从环境中设置用户名、密码和数据库名称。期望它是类似的东西ROCKET_MY_DB=postgres://user:pass@localhost/my_db,但它没有工作。无法找到 Rocket 的相关数据库示例。

0 投票
1 回答
536 浏览

database - 返回使用 Rocket 和 Diesel (Rust) 在 PostgreSQL 中创建的单个记录

我正在尝试基于教程构建一个简单的网络应用程序:。它们都使用略有不同的方法,并且是为使用的库的旧版本编写的,因此当前的 Diesel 和 Rocket API 略有不同。我想响应 POST 请求返回创建的记录或记录 ID。此时我只能返回记录列表 - 单个记录列表(尝试返回单个记录,基于Vec.first()不编译)。

货物.toml

模型.rs

架构.rs

路线.rs

0 投票
1 回答
212 浏览

postgresql - Rust:如何将 SocketAddr 转换为 IpNetwork?

使用 Diesel 和 Rocket,我希望能够记录请求来自的 IP。是类似的讨论,但没有结论。Diesel 将 Postgresinet类型映射到IpNetwork,但 RocketSocketAddr从请求数据中返回。如何转换SocketAddrIpNetwork

模型.rs

路线.rs

0 投票
1 回答
803 浏览

cookies - 使用 Rocket 在 Rust 中取消设置会话 Cookie

到目前为止,我无法通过logout在 Rocket 中创建的端点取消设置会话。

下面是创建 cookie 的代码:

这是试图破坏它的代码

当 POST '/signup' 或 POST '/login' 被成功调用时,cookie 会被添加。

在 Chrome devtools 中,您可以看到 POST '/login' 响应中设置的 cookie。

登录响应标头

然后我使用 POST '/logout' 注销,并得到以下响应:

注销响应标头

在这一点上,我进行了一次硬刷新。之后 GET '/get-profile' 被调用,这在注销时不应该工作,但它仍然在请求标头中发送 cookie。

在此处输入图像描述

所以似乎会话cookie没有被正确取消,在Rocket中有没有正确的方法来做到这一点?

0 投票
1 回答
133 浏览

rust - 如何将 PickleDB 与 Rocket/Juniper 上下文一起使用?

我正在尝试使用PickleDB(内存中的键/值存储)编写基于Rocket / Juniper / Rust 的 GraphQL 服务器。

pickle db 在开始时创建/加载,并交给 Rocket 管理:

我想从我的 Guard 中的 Rocket State中检索 PickleDb 实例:

这不起作用,因为国家只给了我一个参考:

当我更改 Context 结构以包含引用时,我会遇到我还不熟悉的生命周期问题:

我尝试使用 'static 确实让 rust 非常不开心,我尝试使用 FromRequest 的请求生命周期 (?) 'r,但这也不起作用......

我怎样才能让它工作?由于我对生锈很陌生,这是做事的正确方法吗?

0 投票
1 回答
295 浏览

rust - 如何在测试范围的mod中使用注解和微?

我的代码结构如下。

在此处输入图像描述

我运行了“货物运行”并且它有效。但是当我运行“货物测试”时,我得到了如下错误。你能告诉我为什么以及如何解决它们吗?

get错误:在此范围内找不到属性

routes错误:在此范围内找不到宏

src/main.rs

src/common.rs


测试/开发.rs

测试/common.rs

0 投票
1 回答
85 浏览

rust - Rust/Rocket 中的 POST 声明问题

我正在尝试用火箭编写一个简单的 api 来帮助自己学习 rust,但是在我尝试声明 POST 路由后遇到了这个错误:

这是该路由的函数声明:

我正在导入这些宏:

我为 GET 声明了另一种方法,但该方法工作正常。我做了一些研究,发现了这些示例和文档: https ://api.rocket.rs/v0.4/rocket_codegen/attr.post.html https://rocket.rs/v0.4/guide/requests/ #格式

据我所知,我遵循这两页中提到的约定,我有点迷失从这里去哪里。是否有一些我缺少的语法或导入?