rust - 使用显式生命周期时,Rocket 的状态错误“尝试检索非托管状态”?
问题描述
当使用具有省略生命周期的 Rocket 时State
,可以正常处理对路由的请求:
#[post("/foo")]
pub fn foo_handler(db: State<Db>) {
// ...
}
但是,如果提供了明确的生命周期,那么 Rocket 会在请求中出错Attempted to retrieve unmanaged state!
:
#[post("/foo")]
pub fn foo_handler<'a>(db: State<&'a Db>) {
// ...
}
编译器没有在这里找到一些东西,或者 Rocket 避免了安全检查,因为它编译正常,没有任何错误或警告。有任何想法吗?
解决方案
这似乎是实现所需结果的方法:
#[post("/foo")]
pub fn foo_handler<'a>(db: State<'a, Db>) {
// ...
}
Rocket 的State文档中提供了一个示例。不过,我希望上述实现会引发错误,因为它是有效的语法。
推荐阅读
- c# - C# 8.0 非 Nullable 类型兼容经典网络框架 (4.X)
- javascript - 如何添加自动完成以使用 angularjs 和远程数据库搜索输入文本?
- python - 如何在 Sagemaker 中将 Tensorboard 与 Pytorch 一起使用
- xml - SOAP UI - 在 CMD 执行中使用 -t 设置代理设置
- angular - 如何在角度应用程序中设置基本 Href?
- python - 将 Python 游戏制作为独立的应用程序
- javascript - 在 JS ajax 调用的 data 参数中写什么
- c++ - 访问函数变体时出现“无效转换”错误
- javascript - 在 for 循环中使用 promise 处理异步数据
- javascript - 如何在没有动态导入的情况下拆分commons js?