试图在rust api上实现rocket_cors组件

试图在rust api上实现rocket_cors组件,rust,cors,rust-rocket,Rust,Cors,Rust Rocket,我是个新手,我正在使用rocket创建一个简单的CRUDAPI,稍后我会将它放在AWS EC2桶上。我有一两条基本路线,我想开始实现CORS,这样react应用程序就可以调用我的API。我已经尝试了多个教程和示例,但我仍然被卡住了 我看过的教程: 我的文件作为代码段附加 #![功能(过程宏、数据宏)] #[宏_使用] 外部板条箱火箭; #[宏_使用] 外部板条箱serde_; 使用std::error::error; 使用rocket::http::方法; 使用rocket_cors:

我是个新手,我正在使用rocket创建一个简单的CRUDAPI,稍后我会将它放在AWS EC2桶上。我有一两条基本路线,我想开始实现CORS,这样react应用程序就可以调用我的API。我已经尝试了多个教程和示例,但我仍然被卡住了

我看过的教程:

我的文件作为代码段附加

#![功能(过程宏、数据宏)]
#[宏_使用]
外部板条箱火箭;
#[宏_使用]
外部板条箱serde_;
使用std::error::error;
使用rocket::http::方法;
使用rocket_cors::{allowedHeader,allowedOriginates};
使用rocket_contrib::json::json;
国防部说明;
mod user_creds;
使用notes::notes;
使用用户信任::用户信任;
#[获取(“/api/v1/db/read”)]
fn read_db()->&'static str{
“阅读”
}
#[获取(“/api/v1/govee”)]
fn govee()->&'static str{
“你好,戈维!”
}
#[post(“/api/v1/db/notes”,format=“json”,data=”“)]
fn get_notes(notes:Json)->Json{
笔记
}
#[post(“/api/v1/login”,format=“json”,data=”“)]
fn登录(用户凭据:Json)->Json{
普林顿(
“用户信任,{},{}”,
user\u creds.username,user\u creds.password
);
用户信誉
}
fn main(){
let allowed_origins=AllowedOrigins::some_确切(&[”http://localhost:8080"]);
//您还可以将其反序列化
让cors=火箭_cors::CorsOptions{
允许的来源,
允许的_方法:vec![Method::Get].into_iter().map(From::From).collect(),
允许的_头:允许的头::一些(&[“授权”,“接受]),
允许\u凭据:true,
…默认值::默认值()
}
.to_cors();
火箭:点火
.mount(“/”,routes![read_db])
.附件(cors)
.launch();

}
CorsOptions::to_cors
返回一个
结果
,这意味着它可能返回一个错误。您必须先处理该错误,然后才能将其用作
整流罩

let cors=rocket\u cors::CorsOptions{
允许的来源,
允许的_方法:vec![Method::Get].into_iter().map(From::From).collect(),
允许的_头:允许的头::一些(&[“授权”,“接受]),
允许\u凭据:true,
…默认值::默认值()
}
.to_cors()
//如果出现错误,请惊慌
.expect(“创建CORS整流罩时出错”);
现在可以将其作为整流罩附着:

rocket::ignite()
.mount(“/”,routes![read_db])
.附件(cors)
.launch();

CorsOptions::to_cors
返回一个
结果
,这意味着它可能返回一个错误。您必须先处理该错误,然后才能将其用作
整流罩

let cors=rocket\u cors::CorsOptions{
允许的来源,
允许的_方法:vec![Method::Get].into_iter().map(From::From).collect(),
允许的_头:允许的头::一些(&[“授权”,“接受]),
允许\u凭据:true,
…默认值::默认值()
}
.to_cors()
//如果出现错误,请惊慌
.expect(“创建CORS整流罩时出错”);
现在可以将其作为整流罩附着:

rocket::ignite()
.mount(“/”,routes![read_db])
.附件(cors)
.launch();

您不必添加错误,只需以某种方式处理即可。添加
.expect(“错误创建CORS整流罩”)
将处理错误。您不必添加错误,只需以某种方式处理它。添加
.expect(“创建CORS整流罩时出错”)
将处理该错误。
[dependencies]
rocket = "0.4.6"
rocket_codegen = "0.4.6"
rocket_cors = "0.5.1"
diesel = "1.4.5"
dotenv = "0.15.0"
serde = "1.0.117"
serde_json = "1.0.59"
serde_derive = "1.0.117"
chrono = "0.4.19"

[dependencies.rocket_contrib]
version = "*"
default-features = false
features = ["json"]