我使用的柴油ORM包装与PostgreSQL。我遵循的是他们网站上的指南,它有以下代码:
pub fn establish_connection() -> PgConnection {
dotenv().ok();
let database_url = env::var("DATABASE_URL")
.expect("DATABASE_URL must be set");
PgConnection::establish(&database_url)
.expect(&format!("Error connecting to {}", database_url))
}我理解了dotenv()通过dotenv文档所做的工作--它加载env文件。在源代码中,我看到dotenv()返回一个Result。那么ok()是做什么的呢?它能解开结果吗?如果是,为什么不使用unwrap()?
发布于 2020-06-24 02:27:57
这是一种忽略因未能加载dotenv环境文件而产生的错误的方法。
dotenv()返回一个Result。Result::ok将Result转换为Option。此Option不会触发有关未使用的Result的警告。
为什么不使用
unwrap()
因为你不希望它失败。在生产中,不应该有环境文件,而是使用实际的环境变量。如果您使用unwrap,那么您的服务将立即在生产中失败。不幸的是,这件事发生在我身上。
https://stackoverflow.com/questions/62546180
复制相似问题