Lær hvordan du bruker dotenv-kassen og std:: env-modulen for å samhandle med miljøvariabler i Rust og håndtere sensitiv informasjon.
Miljøvariabler spiller en avgjørende rolle i å konfigurere og tilpasse atferden til moderne programvare, og gir en fleksibel måte å formidle informasjon til apper uten hardkodingsverdier.
Miljøvariabler er dynamiske nøkkelverdi-par satt i et operativsystems miljø eller en miljøvariabelfil for tilgang under kjøring. I motsetning til hardkodede verdier, gir miljøvariabler større fleksibilitet og tilpasningsevne siden du enkelt kan endre dem.
Det er mange pakker og moduler for å samhandle med miljøvariabler i Rusts økosystem, inkludert dotenv, misunne, og konfig tredjeparts kasser, og bruk Rusts innebygde std:: env modul.
Introduksjon til dotenv-kassen
De dotenv crate er et verdifullt verktøy for å administrere miljøvariabler i Rust-prosjektet ditt. De dotenv crate gir enkel integrasjon og brukervennlige funksjoner som forenkler prosessen med å laste og få tilgang til miljøvariabler fra miljøvariablefiler.
Dotenv-kassens funksjoner inkluderer sømløs miljøvariabel lasting, feilhåndteringsmetoder for manglende variabler, interoperasjon med std:: env modul og mer.
Legg til dotenv kasse til din Cargo.toml filens avhengighetsseksjon for å begynne å samhandle med miljøvariabler ved å bruke pakken.
[avhengigheter]
dotenv = "0.15.0"
Kjør denne kommandoen i terminalen i prosjektets katalog for å lage en miljøvariabelfil og sette inn et nøkkelverdi-par.
ekko DATABASE_URL=database.db > .env
Slik kan du laste inn miljøfilen og hente verdien av et par fra filen (i dette tilfellet verdien av DATABASE_URL nøkkel:
bruk std:: env;
bruk dotenv:: dotenv;fnhoved-() {
dotenv().ok(); // Last inn .env-filen
// Les verdien fra .env-filen
la database_url = env:: var("DATABASE_URL").forvent("Du har ikke angitt DATABASE_URL");// Skriv ut verdien
println!("Database-URL: {}", database_url);
}
De hoved- funksjonen laster inn .env fil med ok funksjon, leser verdien fra filen med env:: var funksjon, og håndterer mulige feil med forvente funksjon.
Introduksjon til std:: env-modulen
Alternativt i stedet for ved hjelp av tredjepartspakker, kan du bruke Rusts innebygde std:: env modul for å lese miljøvariabler fra maskinen din.
Først må du importere env modul i Rust-filen din slik:
bruk std:: env;
Etter import av std:: env modul, kan du lese og skrive miljøvariabler.
Slik kan du lese PWD (Present Working Directory) miljøvariabel med std:: env modul.
bruk std:: env;
fnhoved-() {
// Hent verdien av "PWD" miljøvariabelen
la variabel = env:: var("PWD").forvent("Feil: Arbeidskatalogmiljøvariabel ikke funnet");// Skriv ut verdien knyttet til "PWD"-tasten
println!("Verdi assosiert med PWD-nøkkelen: {}", variabel);
}
De hoved- funksjonen skriver ut verdien knyttet til PWD nøkkel etter variabelen henter verdien med env:: var funksjon.
Du kan også bruke std:: env moduler set_var funksjon for å angi miljøvariabler.
bruk std:: env;
fnhoved-() -> ResultatEske<dyn std:: error:: Feil >> {
// Sett miljøvariabelen "DATABASE_URL" til "database.db"
env:: set_var("DATABASE_URL", "database.db");// Hent verdien av miljøvariabelen "DATABASE_URL".
la env_variable = env:: var("DATABASE_URL");// Sjekk om henting av miljøvariabelen var vellykket
hvis env_variable.is_err() {// Hvis miljøvariabelen ikke ble funnet, skriv ut en feilmelding
println!("Feil: DATABASE_URL ikke funnet");} ellers {
// Hvis miljøvariabelen ble funnet, skriv ut verdien
println!("DATABASE_URL satt til: {}", env_variable.unwrap());}
Ok(())
}
De hoved- funksjonen setter miljøvariabelen med set_var funksjon som tar inn nøkkelverdi-paret. Etter å ha angitt miljøvariabelen, skriver funksjonen ut verdien knyttet til nøkkelen.
Miljøvariabler er allsidige
Miljøvariabler er et verdifullt verktøy for å håndtere dynamiske data; de letter testdrevet utvikling siden du enkelt kan endre dataene og kjøre testcases for flere scenarier.
Ved å bruke miljøvariabler kan du unngå hardkoding av sensitiv informasjon som databasebrukernavn, passord og koble URL-er direkte inn i kildekoden, og dermed forbedre applikasjonens sikkerhet samtidig som det muliggjør enklere konfigurering ledelse.