Créer et stocker des configurations dans Node.js

Isaac Tony 15 février 2024
Créer et stocker des configurations dans Node.js

La gestion des fichiers de configuration peut être une tâche ardue dans Node.js pour les développeurs novices. C’est vrai malgré la présence de bibliothèques telles que convict, husks ou config qui facilitent le développement et la gestion des fichiers de configuration.

L’une des meilleures pratiques qui facilitent le stockage et la gestion des fichiers de configuration consiste à créer un fichier centralisé qui stocke les fichiers et garantit que les fichiers peuvent être modifiés sans affecter le code.

Avoir un fichier centralisé qui peut ensuite être étendu à d’autres environnements facilite la vie des autres développeurs qui lisent votre code en plus de favoriser la réutilisation.

Dans Node.js, les fichiers de configuration sont normalement stockés dans un fichier de configuration par défaut ; cependant, ils peuvent être remplacés et étendus par des sources externes ou des variables environnementales.

Les fichiers de configuration peuvent être dans différents formats de fichier ; ceux-ci incluent les plus courants tels que .json, YAML et d’autres tels que .json5 ou .hjson.

Installez node-config pour créer et stocker des configurations dans Node.js

Node-config est un package npm qui nous permet de créer et de stocker différents fichiers de configuration de déploiement. Nous pouvons définir des paramètres par défaut à étendre aux environnements de développement, de production ou de mise en scène à l’aide de ce package.

Nous pouvons installer et configurer Node-config à l’aide du gestionnaire de packages npm. Cependant, nous devons d’abord créer un serveur express simple, puis accéder au dossier de l’application, comme indiqué ici.

exemple de serveur d’applications

Une fois le serveur d’application en place, nous pouvons installer le package de configuration en exécutant la commande ci-dessous.

$ npm install config

La commande ci-dessus ajoutera le package de configuration comme l’une de nos dépendances dans le fichier package.json, comme indiqué ci-dessous.

{
  'name': 'myapp', 'version': '1.0.0', 'description': '', 'main': 'index.js',
      'scripts': {'test': 'echo "Error: no test specified" && exit 1'},
      'author': 'Isaac Tony', 'license': 'MIT',
      'dependencies': {'config': '^3.3.7', 'express': '^4.17.2'}
}

Nous pouvons maintenant créer un fichier qui hébergera tous nos fichiers de configuration par défaut en créant d’abord un dossier que nous nommerons config puis en créant un fichier nommé default.json, comme indiqué dans la structure de l’application ci-dessous.

structure de l’application

Comme indiqué ci-dessus, bien que lors de l’utilisation de Node-config, nous ayons la possibilité de choisir le type de fichier qui stockera nos configurations, nous avons choisi de nous en tenir au format .json car c’est le format par défaut.

Maintenant dans le fichier default.json, nous pouvons ajouter notre paramètre de configuration dans notre application. Voici quelques configurations de base que nous pouvons ajouter au fichier default.json.

{
  'server': {'port': 3000},
      'db': {'host': 'localhost', 'port': 27017, 'name': 'mongodb'}
}

En utilisant maintenant la fonction config.get, nous pouvons récupérer ces paramètres et paramètres et les utiliser dans notre application, comme indiqué dans le fichier index.js ci-dessous.

const express = require('express')
const app = express()

const config = require('config');
const port = config.get('server.port');
const host = config.get('db.host');


app.get('/', (req, res) => {res.send('Hello World!')})

app.listen(
    port, host,
    () => {console.log(`The application is listening on ${host}:${port}`)})

Une fois que nous avons ce fichier de configuration par défaut en place, nous pouvons facilement étendre ces paramètres de configuration à la production, aux tests, etc., en créant des fichiers de configuration pour l’environnement respectif.

Nous pouvons également effectuer des remplacements spécifiques à l’environnement en répétant les variables de configuration dans le fichier de configuration par défaut dans un autre fichier de configuration spécifique à l’environnement ou via la ligne de commande en créant la variable NODE-CONFIG avant de démarrer l’application.

Auteur: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn