问题标签 [rust-actix]
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.
rust - 如何使用 actix_web::guard::Header?
为了支持application/json
和multipart/form-data
在同一个 URL 上,我想检查“Content-Type”标头并选择一个合适的Data<T>
类型来提交.data
给App::new
.
如果我取消注释该.guard
行,则将curl -X POST -H "Content-Type: multipart/form-data" -F files=\"qqq\" localhost:8080/upload
被删除。但如果没有这.guard
条线,一切都会按预期进行。怎么了?
如何在一个 App 实例中正确加入它们?
rust - 如何通过 curl 使用 actix-from-data 的映射数组发出 POST 请求?
我正在尝试通过 curl 发送带有地图数组的 POST 请求。应该怎么写?
我写:
curl -X POST -H "Content-Type: multipart/form-data" -F files[]="name=\"qqq\"" localhost:8080/upload
但它返回一个Found field with unexpected name or type
错误。
顺便说一句,如果未注释的笔画在每张地图中有两个字段,情况会怎样?对于文件名和文件数据?
rust - 使用 actix-web 从 HTML 页面捕获 GET 和 POST 请求
为了在 FORM 中捕获请求的详细信息(我使用的是 actix-web),我在提交 HTML 表单时收到一条错误消息。
当我提交表格时,我收到此错误:
Content type error
使用的代码:
使用的 HTML 表单:
预期结果将是:
要显示的值的示例
rust - 如何使用actix在函数内部使用数据库池?
我为 MySQL 数据库创建了一个池,如下所示:
像这样包含在actix中:
问题来了,如何在这个 info 函数中使用它:
直接将 MySQL 连接的一个实例传递给 get_infos 运行良好,但使用池我不知道如何处理它?!请问有什么帮助吗?
为了更清楚地说明,我的目标是使用 POOLING 而不是只使用一个实例,就像这段代码中的情况一样:
我在前面的代码中启动了 POOL to actix:
.data(pool.clone()) // <-- HERE
但是如何将它作为参数传递给get_infos
函数。
再次感谢您的帮助。
rust - 如何处理来自 actix-multipart 数据的文件而不将其保存到磁盘
actix-web
处理文件的建议方法multipart/form-data
是将它们保存到 fs,但我想做一些准备,例如猜测格式、制作缩略图、计算哈希等。
有没有办法不重写handle_multipart
from调用的所有函数链actix-multipart
以进行一些小的更改?
docker - docker 中的 Rust actix_web 无法实现,为什么?
我正在尝试为我的 rust 程序制作一个 docker 容器,让我们看看
Dockerfile
cmd运行:docker run -it -p 8080:8080 rust_rest_api/dev
但是从外部卷曲curl -i -X POST -F files[]=@img.png 127.0.0.1:8080/upload
到curl: (56) Recv failure: Соединение разорвано другой стороной
ie 被渠道的另一边拒绝
但在容器内:
但是在没有 docker 的情况下运行程序可以正常工作并充分处理来自 curl 的相同请求。
在容器内:
外面的问题是什么?
mongodb - 如何在 rust 中将 MongoDB 与 r2d2 和 actix 一起使用
我正在尝试使用rust语言制作一个基本的 Web 应用程序,使用actix框架和r2d2以及mongodb作为数据库。我找不到任何关于如何存档的完整且有效的文档。也许有人可以在这里帮助我。
问题是,我似乎无法从 r2d2 连接池获得 mongodb 连接。遗憾的是,我找到的任何文档都没有涵盖这部分。
我发现的一些链接:
- 将 r2d2 与 actix 一起使用:https ://github.com/actix/examples/blob/master/r2d2/src/main.rs
- 将 mongodb 与 r2d2 一起使用: https ://docs.rs/r2d2-mongodb/0.2.2/r2d2_mongodb/
这部分创建连接池并将其交给actix。
这是试图访问连接池的处理函数
这是显示我的问题的错误。conn 变量似乎不是一个合适的 mongodb 连接。
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(不带泛型参数)但仍然出现错误,我该怎么办?
javascript - 提供的 JavaScript 文件为空白
我正在设置一个 Actix 服务器,它将托管各种静态文件,其中 Web 应用程序的流量通过这台服务器运行。但是,当我尝试提供文件时,它将提供我的资产文件夹和我的 HTML 文件,而不是我的 JavaScript 文件。
我尝试使用 NamedFile 没有任何优势,我尝试使用“./index.js”、“index.js”,并将其移动到自己的 js 文件夹并尝试“js/index.js”。
main.rs
索引.html
项目结构
当我的服务器启动并进入页面时,index.js 文件为空,但 assets 文件夹中有页面中使用的图像,并且 index.html 页面正在显示。
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::stop
a 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
.