4
votes

Variables d'environnement NodeJs vs fichier de configuration

En fait, j'ai une application nodejs express avec son fichier de configuration pour les paramètres tels que l'hôte, le port, le jeton JWT, les paramètres DB et plus encore.

La question est de savoir si cela pourrait avoir un sens de garder ces paramètres directement sur les variables d'environnement (sans aucun fichier de configuration) et d'y accéder sans avoir besoin de faire le "require" pour la configuration dans tous les composants et modules.

Tous les exemples que je vois utilisent un fichier de configuration, probablement quelque chose sur la sécurité ou la mémoire?


0 commentaires

3 Réponses :


3
votes

Une autre possibilité consiste à utiliser des fichiers .env dans nodejs. Je pense que vous devez npm installer dotenv dans votre application. Idéalement, différentes instances (dev, prod ....) ont leur propre fichier .env, et vous n'avez pas besoin d'appeler require ("dotenv") à chaque fois si vous voulez accéder à la variable d'environnement. Appelez-le au tout début c'est-à-dire) dans app.js et vous pouvez accéder à la variable d'environnement dans n'importe lequel des sous-fichiers.


2 commentaires

Merci, très intéressant, je ne connaissais pas ce module


Fait intéressant, les responsables de dotenv découragent l'utilisation de multiple. env , tandis que les frameworks populaires tels que Vue CLI < / a> faites juste cela.



3
votes

Un fichier de configuration vous permet de définir très rapidement l'ensemble de l'environnement d'une machine - par exemple les compartiments S3, les URL d'API, les clés d'accès, etc. Si vous les séparez en process.env.VARIABLE séparés, vous aurait besoin de définir chacun de ces ... pour lequel vous feriez probablement un script ... et maintenant vous avez à nouveau un fichier d'environnement!

Pour accéder aux variables d'environnement, vous pouvez utiliser process.env.VARIABLE dans votre code nodejs (est toujours une chaîne), tant que la variable est définie avant le démarrage du processus.


2 commentaires

De plus, il serait plus facile d'ancrer l'application plus tard


Bon point sur l'utilitaire de fichier de configuration. L'idée sera donc d'avoir le fichier de configuration et au début du code passer tous les paramètres à proccess.env.Parametername au lieu de faire le require pour accéder directement au fichier de configuration (avec beaucoup d'exigences). S'il n'y a pas de problème de sécurité avec les clés (secret et db) sur les variables d'environnement, ce sera la bonne solution pour moi.



4
votes

le fichier de configuration sert généralement à définir les valeurs par défaut de vos variables d'environnement,

qui est nécessaire lorsque vous écrivez les cas de test et devez utiliser des valeurs par défaut ou des valeurs simulées,

et vous aurez également toutes les variables d'environnement au même endroit, ce qui est une meilleure gestion.

donc si vous avez une variable d'environnement x,

dans le fichier de configuration, vous pouvez le conserver comme

config.x = process.env.x || 'defaultVale ou mockValue'


0 commentaires