Hopp til innhold
NorscodeNorscode

std.env

ReferanseAv Norscode-prosjektet

std.env leser og setter miljøvariabler — den vanlige måten å skille konfigurasjon fra kode, som porter, nøkler og filstier, med env-kapabilitet.

std.env leser og setter miljøvariabler — verdiene operativsystemet eller den som starter programmet gir det. Det er den vanlige måten å skille konfigurasjon fra kode på: en database-sti, en portverdi eller en hemmelig nøkkel som ikke bør ligge i selve programmet.

Som alt annet i Norscode er tilgangen styrt av kapabiliteter. Programmet må ha env.read for å lese miljøet, og env.write for å sette en variabel — ellers er miljøet utilgjengelig, helt med vilje, slik at kode du ikke har lest ikke kan snuse i hemmelighetene dine.

Når bruker du den

Bruk std.env til konfigurasjon som ikke bør ligge i koden: en database-sti, en port, en hemmelig nøkkel. hent leser en variabel, finnes sjekker om den er satt, og sett setter en. Husk kapabilitetene env.read og env.write.

Slik kommer du i gang

bruk std.env som env

funksjon start() -> heiltall {
    la port = env.hent("PORT")
    hvis port == "" { port = "8080" }   // fornuftig standard
    skriv("Bruker port " + port)
    returner 0
}

Et vanlig mønster er å lese en variabel og falle tilbake på en standard hvis den ikke er satt. Slik kan samme program kjøre ulikt i utvikling og produksjon uten kodeendring.

Funksjonene

Tre små funksjoner dekker alt: hent leser, finnes sjekker, sett setter.

  • hent(nokkel: tekst) -> tekst — Leser en miljøvariabel, eller gir tom tekst hvis den ikke er satt.
  • finnes(nokkel: tekst) -> bool — Sann hvis miljøvariabelen er satt.
  • sett(nokkel: tekst, verdi: tekst) -> tekst — Setter en miljøvariabel for det kjørende programmet.

Godt å vite

  • hent gir en tom tekst når variabelen ikke er satt — kombiner med en standardverdi slik eksempelet viser.
  • sett påvirker bare det kjørende programmet, ikke systemet varig.
  • Legg aldri hemmeligheter i koden; les dem fra miljøet, og gi programmet env.read kun der det trengs.

std.env er én av modulene i standardbiblioteket. Alt følger med kjøretiden — ingen installasjon, ingen eksterne avhengigheter. Se også Dokumentasjon for språket og kjøretiden.

Les også

Tilbake til oversikten