Maison développement back-end Golang Comment utiliser les variables d'environnement dans Go ?

Comment utiliser les variables d'environnement dans Go ?

May 11, 2023 pm 04:30 PM
使用 go语言 环境变量

Pendant le processus de développement, nous devons souvent utiliser des variables d'environnement pour configurer le comportement de l'application. Dans le langage Go, l'utilisation de variables d'environnement est également une méthode relativement courante. Dans cet article, nous apprendrons comment utiliser les variables d'environnement dans Go et explorerons quelques conseils et considérations pratiques.

1. Connaissance de base des variables d'environnement
Dans le système d'exploitation, les variables d'environnement sont des paires clé-valeur globales accessibles et modifiées dans différentes applications. En définissant des variables d'environnement, nous pouvons personnaliser certains comportements du programme, tels que les informations de connexion à la base de données, la sortie du journal de l'application, etc. Dans le langage Go, vous pouvez utiliser les fonctions fournies par le package os pour accéder et définir les variables d'environnement.

Les fonctions et types liés aux variables d'environnement fournies par le package os sont les suivants :

func Getenv(key string) string
Obtenir la valeur de la variable d'environnement du nom spécifié. Si la variable n'existe pas, une chaîne vide est renvoyée.

erreur func Setenv(key, value string)
Définit la variable d'environnement avec le nom spécifié sur la valeur spécifiée.

Erreur func Unsetenv(key string)
Supprimez la variable d'environnement avec le nom spécifié.

type Environ []string
représente toutes les variables d'environnement du processus en cours, qui est une tranche de chaîne. Le format de chaque élément est "nom de la variable = valeur de la variable".

2. Exemples d'utilisation de variables d'environnement
L'exemple de code suivant montre comment utiliser des variables d'environnement pour lire et définir les informations de connexion à la base de données dans Go :

package main

import (

"fmt"
"os"
Copier après la connexion

)

func main() {

// 获取数据库连接信息
dbHost := os.Getenv("DB_HOST")
dbPort := os.Getenv("DB_PORT")
dbUser := os.Getenv("DB_USER")
dbPassword := os.Getenv("DB_PASSWORD")

// 输出连接信息
fmt.Printf("DB_HOST=%s
Copier après la connexion

", dbHost)

fmt.Printf("DB_PORT=%s
Copier après la connexion
Copier après la connexion

", dbPort)

fmt.Printf("DB_USER=%s
Copier après la connexion
Copier après la connexion

", dbUser)

fmt.Printf("DB_PASSWORD=%s
Copier après la connexion
Copier après la connexion

", dbPassword)

// 将新的数据库连接信息保存到环境变量
os.Setenv("DB_HOST", "localhost")
os.Setenv("DB_PORT", "3306")
os.Setenv("DB_USER", "root")
os.Setenv("DB_PASSWORD", "123456")
Copier après la connexion

}

Dans le code ci-dessus, nous avons obtenu quatre informations de connexion à la base de données via les variables d'environnement de la fonction Getenv. . Ensuite, nous enregistrons les nouvelles informations de connexion dans des variables d'environnement pour faciliter leur utilisation par d'autres programmes. Il convient de noter que les paramètres de ces variables d'environnement prendront effet sur l'ensemble du processus et doivent donc être modifiés et gérés avec soin.

3. Utilisez la bibliothèque godotenv pour gérer les variables d'environnement
Dans les applications pratiques, nous devons généralement utiliser différentes configurations dans différents environnements, tels que l'environnement de développement, l'environnement de test, l'environnement de production, etc. Pour simplifier la gestion des variables d'environnement, nous pouvons utiliser la bibliothèque godotenv pour lire et charger les fichiers de configuration des variables d'environnement.

godotenv est une bibliothèque légère développée en langage Go. Elle peut lire les informations de configuration des variables d'environnement à partir de fichiers locaux, d'URL distantes ou de la mémoire, et les charger dans les variables d'environnement du processus pour faciliter l'accès et l'utilisation des applications. Voici un exemple de code utilisant la bibliothèque godotenv :

package main

import (

"fmt"
"github.com/joho/godotenv"
"os"
Copier après la connexion

)

func main() {

// 加载.env文件的配置
err := godotenv.Load(".env")
if err != nil {
    fmt.Printf("Error loading .env file: %v
Copier après la connexion

", err)

}

// 获取配置项
dbHost := os.Getenv("DB_HOST")
dbPort := os.Getenv("DB_PORT")
dbUser := os.Getenv("DB_USER")
dbPassword := os.Getenv("DB_PASSWORD")

// 输出连接信息
fmt.Printf("DB_HOST=%s
Copier après la connexion

", dbHost)

fmt.Printf("DB_PORT=%s
Copier après la connexion
Copier après la connexion

", dbPort)

fmt.Printf("DB_USER=%s
Copier après la connexion
Copier après la connexion

", dbUser)

fmt.Printf("DB_PASSWORD=%s
Copier après la connexion
Copier après la connexion

", dbPassword)
}

Dans le code ci-dessus, nous utilisons la fonction godotenv.Load pour charger le fichier .env dans le répertoire courant et charger la configuration de la variable d'environnement dans le processus. les variables d'environnement. Dans le code suivant, nous accédons à ces variables d'environnement via les fonctions fournies par le package os et les publions sur la console

Il convient de noter que la bibliothèque godotenv n'est qu'un outil de gestion des variables d'environnement. Les variables d'environnement ne peuvent pas être garanties. Par conséquent, dans les applications pratiques, nous devons gérer et utiliser les variables d'environnement de manière raisonnable pour éviter d'exposer des informations sensibles au code ou aux journaux

Conclusion

Dans cet article, nous avons présenté comment les variables d'environnement sont utilisées dans Go to. configurer le comportement des applications. Qu'il s'agisse d'accéder et de définir des variables d'environnement via les fonctions fournies par le package os, ou d'utiliser la bibliothèque godotenv pour gérer les variables d'environnement, nous devons également y prêter attention dans les applications pratiques, gérer et utiliser l'environnement. variables raisonnablement pour éviter les fuites d'informations et les risques de sécurité

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Apr 02, 2025 pm 02:03 PM

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Apr 02, 2025 pm 05:09 PM

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Apr 02, 2025 pm 12:57 PM

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Lorsque vous utilisez SQL.Open, pourquoi ne signale pas une erreur lorsque DSN passe vide? Lorsque vous utilisez SQL.Open, pourquoi ne signale pas une erreur lorsque DSN passe vide? Apr 02, 2025 pm 12:54 PM

Lorsque vous utilisez SQL.Open, pourquoi le DSN ne signale-t-il pas une erreur? En langue go, sql.open ...

See all articles