问题标签 [actix-web]

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 回答
621 浏览

rust-actix - create_app 的正确返回类型

我正在使用 actix-web 创建一个嵌入了状态/数据的 httpserver。但是 vscode 告诉我 create_app 函数在其返回值类型定义“App< AppState >”中有错误的参数:

发布结构应用

类型参数数量错误:预期 2,找到 1

预期 2 类型参数rustc(E0107)

应用程序.rs:

main.rs:

由于“服务”方法的返回类型是“Self”,即 actix_web::App 类型,我尝试将返回类型修改为 App(不带泛型参数)但仍然出现错误,我该怎么办?

0 投票
4 回答
743 浏览

rust - 尝试从 actix-web 路由处理程序函数中发出请求时出现错误“BlockingClientInFutureContext”

我正在使用 Rust 2018 Stable 和 Actix-Web 编写 Web 服务。使用 Reqwest,我正在从一个路由处理程序函数中向不同站点发出 HTTP 请求。简单地说它看起来像这样

这不起作用,我收到以下错误消息(错误打印了 8 次,“worker:1”到“worker:8”,尽管只调用了一次函数):

谷歌在"BlockingClientInFutureContext"上没有发现任何有用的东西,但我猜它与 async/await 或 Tokio 自己的未来有某种关系?

感谢您提供有关阅读内容的任何指示。另外,我是 Rust 的新手。

从 Actix-Web HTttpServer 调用处理函数:

0 投票
0 回答
522 浏览

rust - 如何使用 rusoto_s3 将 actix 多部分字段保存到 s3?

我对 rust 完全陌生,但正在学习。我正在尝试使用 actix_web 和 actix_multipart 进行分段上传,并使用 rusoto_s3 将其上传到 aws s3。从我的基本理解来看,基本上我有一个类型的流,我需要将其转换为ByteStream所需的类型put_object PutObjectRequest { body }

我想我需要在现场使用地图将其从一种类型转换为另一种类型,但我有点迷茫。

例如,沿着这些思路?

谢谢您的帮助!

0 投票
1 回答
102 浏览

error-handling - 在 actix-web 1.0 中间件中获取失败::失败

我正在使用 actix-web 1.0

我正在编写一个必须捕获错误及其堆栈跟踪的中间件。问题是我只能访问ServiceRequests,其中包含一个actix_web::Error.

从此我必须获得 a failure::Fail,但我找不到任何方法。以前我可以Error::as_fail(),但是 1.0 版不再提供此功能

如何获得Fail在我的中间件中实现的错误?

0 投票
1 回答
676 浏览

rust - 将 actix-web 作为 Windows 服务运行时出现问题

我正在尝试使用windows-service来运行 actix Web 应用程序。它提供了一个很好的 API 并且大部分都可以工作。我可以开始我的服务就好了。但是,当我尝试停止我的服务时,我收到以下错误:(Error 109: The pipe has been ended它确实停止了服务)。

我主要只是使用为 提供的示例windows-service,但这里是相关代码(对于上下文和所有包装函数,请查看https://github.com/mullvad/windows-service-rs/blob/master/examples/ ping_service.rs):

如果我把System::stopa thread::spawn,我得到一个不同的错误:The service did not return an error. This could be an internal Windows error or an internal service error. 在这种情况下,它不会停止服务。

我已经进行了一些日志记录,看起来代码从未超过sys.run().unwrap(),这很奇怪。

有什么想法吗?我以前从未使用过 Windows 服务 API,所以我真的不知道自己在做什么。

编辑

我弄清楚主要问题是什么:我必须在停止服务之前通知 Windows 服务已停止。我整理了一个笨拙的方法来使它工作:

I 在事件处理程序中设置为 true 的shutdown_signal位置在哪里。AtomicBool我要看看我是否可以通过actix_rt.

0 投票
1 回答
2355 浏览

rust - 使用 actix-web 调用 async reqwest

在我的actix-web-server 中,我试图使用reqwest调用外部服务器,然后将响应返回给用户。

这有两个问题:

  1. println!("{:?}", json);似乎从未运行,或者至少我从未看到任何输出。
  2. _resp回来了,这是 a Future,但我不明白如何等待它解决,以便将字符串传递回Responder

以供参考:

0 投票
1 回答
1851 浏览

rust - 如何在 actix-web 中执行异步功能?

async connect()如下功能。

首先,我尝试connect()futures::executor::ThreadPool::run. 它会恐慌,因为actix_web::client::Client必须在 actix 框架上下文中使用。

如何在 actix 上下文中执行 connect()?

我也尝试了下面的代码。它不编译。

它以编译错误结束。

我还在学习 Rust。请问有人可以帮忙吗?赞赏。

Rust 版本:每晚 1.39

0 投票
1 回答
518 浏览

rust - Error handling and conditional chaining of Actix actors

This is my first attempt at writing a small webservice with rust, using actix-web.

The code below is a request handler that is intended to do three things, insert an entry in the database, send an email if that db call was successful, and then return a json payload as the response.

data.dal (database call) and data.email_service are references to Actors.

The issue: is I am unable to capture the error returned by data.dal. Any attempt to reconfigure the below code seems to give me an error stating the compiler wasn't able to find a conversion from Actix Mailbox to [Type].

Is there an alternate/better way to rewrite this? Basically when the request is issued, I'd like to be able to call Actor A. And if the result from A is Ok then call Actor B. If the results from both are okay return a JSON payload. If either A or B return an error (can have different error types), return an custom error message.

0 投票
1 回答
365 浏览

mongodb - 如何将 actix_web Json 存储到 mongodb?

尝试使用 r2d2-mongodb 和 actix_web 将传入数据存储到 mongo 中。

我似乎无法理解我需要什么/如何将重量转换为与insert_one. 上面的代码错误成error[E0277]: the trait bound 'bson::ordered::OrderedDocument: std::convert::From<&api::weight::Weight>' is not satisfied

0 投票
1 回答
1895 浏览

rust - 如何将异步/标准库 future 转换为 futures 0.1?

我想使用该async函数逐步解析入站流,但 actix-web 需要impl Future<Item = HttpResponse, Error = Error>作为返回值。

如何将async函数返回的未来转换为 actix-web 所需的?

我每晚使用 Rust 1.39 和 actix-web 1.0.7。

http_srv.rs

货物.toml

编译错误