Lär dig hur du använder dotenv-lådan och std:: env-modulen för att interagera med miljövariabler i Rust och hantera känslig information.

Miljövariabler spelar en avgörande roll för att konfigurera och anpassa beteendet hos modern programvara, vilket ger ett flexibelt sätt att förmedla information till appar utan hårdkodningsvärden.

Miljövariabler är dynamiska nyckel-värdepar inställda i ett operativsystems miljö eller en miljövariabelfil för åtkomst under körning. Till skillnad från hårdkodade värden tillåter miljövariabler större flexibilitet och anpassningsbarhet eftersom du enkelt kan ändra dem.

Det finns många paket och moduler för att interagera med miljövariabler i Rusts ekosystem, inklusive dotenv, avundas, och config tredje parts lådor och använd Rusts inbyggda std:: env modul.

Introduktion till dotenv-lådan

De dotenv crate är ett värdefullt verktyg för att hantera miljövariabler i ditt Rust-projekt. De dotenv crate ger enkel integration och lättanvända funktioner som förenklar processen att ladda och komma åt miljövariabler från miljövariablerfiler.

instagram viewer

Dotenv-lådans funktioner inkluderar sömlös miljövariabel laddning, felhanteringsmetoder för saknade variabler, interoperation med std:: env modul och mer.

Lägg till dotenv låda till din Cargo.toml filens beroendesektion för att börja interagera med miljövariabler med hjälp av paketet.

[beroenden]
dotenv = "0.15.0"

Kör det här kommandot i terminalen i ditt projekts katalog för att skapa en miljövariabelfil och infoga ett nyckel-värdepar.

eko DATABASE_URL=databas.db > .env

Så här kan du ladda miljöfilen och hämta värdet av ett par från filen (i det här fallet, värdet av DATABASE_URL nyckel:

använda sig av std:: env;
använda sig av dotenv:: dotenv;

fnhuvud() {

dotenv().ok(); // Ladda .env-filen

// Läs värdet från .env-filen
låta database_url = env:: var("DATABASE_URL").förvänta("Du har inte ställt in DATABASE_URL");

// Skriv ut värdet
println!("Databasadress: {}", database_url);

}

De huvud funktionen laddar .env fil med ok funktion, läser värdet från filen med env:: var funktion och hanterar eventuella fel med förvänta fungera.

Introduktion till std:: env-modulen

Alternativt istället för använder tredjepartspaket, kan du använda Rusts inbyggda std:: env modul för att läsa miljövariabler från din maskin.

Först måste du importera env modul i din Rust-fil så här:

använda sig av std:: env;

Efter import av std:: env modul kan du läsa och skriva miljövariabler.

Så här kan du läsa PWD (Present Working Directory) miljövariabel med std:: env modul.

använda sig av std:: env;

fnhuvud() {

// Hämta värdet för miljövariabeln "PWD".
låta variabel = env:: var("PWD").förvänta("Fel: Arbetskatalogmiljövariabeln hittades inte");

// Skriv ut värdet som är associerat med "PWD"-tangenten
println!("Värde associerat med PWD-nyckeln: {}", variabel);

}

De huvud funktionen skriver ut värdet som är associerat med PWD nyckel efter variabeln hämtar värdet med env:: var fungera.

Du kan också använda std:: env modulens set_var funktion för att ställa in miljövariabler.

använda sig av std:: env;

fnhuvud() -> ResultatLåda<dyn std:: error:: Error >> {

// Ställ in miljövariabeln "DATABASE_URL" till "database.db"
env:: set_var("DATABASE_URL", "database.db");

// Hämta värdet för miljövariabeln "DATABASE_URL".
låta env_variable = env:: var("DATABASE_URL");

// Kontrollera om hämtning av miljövariabeln lyckades
om env_variable.is_err() {

// Om miljövariabeln inte hittades, skriv ut ett felmeddelande
println!("Fel: DATABASE_URL hittades inte");

} annan {

// Om miljövariabeln hittades, skriv ut dess värde
println!("DATABASE_URL inställd på: {}", env_variable.unwrap());

}

Ok(())
}

De huvud funktionen ställer in miljövariabeln med set_var funktion som tar in nyckel-värdeparet. Efter att ha ställt in miljövariabeln skriver funktionen ut värdet som är kopplat till nyckeln.

Miljövariabler är mångsidiga

Miljövariabler är ett värdefullt verktyg för att hantera dynamisk data; de underlättar testdriven utveckling eftersom du enkelt kan ändra data och köra testfall för flera scenarier.

Genom att använda miljövariabler kan du undvika hårdkodning av känslig information som databasanvändarnamn, lösenord och koppla webbadresser direkt till källkoden, vilket förbättrar din applikations säkerhet samtidigt som det möjliggör enklare konfiguration förvaltning.