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.

instagram viewer

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.