Les variables d'entorn són una manera de configurar aplicacions sense haver de modificar el codi font. Aquestes variables es poden utilitzar per emmagatzemar informació sensible com ara claus d'API, cadenes de connexió a bases de dades, i altres configuracions que poden variar entre diferents entorns (desenvolupament, proves, producció).

Conceptes Clau

  1. Què són les variables d'entorn?

    • Són variables externes al codi de l'aplicació que poden influir en el comportament del programa.
    • Es defineixen en el sistema operatiu o en fitxers de configuració.
  2. Per què utilitzar variables d'entorn?

    • Seguretat: Eviten que informació sensible estigui codificada directament en el codi font.
    • Flexibilitat: Permeten canviar configuracions sense necessitat de modificar el codi.
    • Portabilitat: Faciliten el desplegament de l'aplicació en diferents entorns amb configuracions específiques.

Configuració de Variables d'Entorn

Definir Variables d'Entorn

Les variables d'entorn es poden definir de diverses maneres, depenent del sistema operatiu i del context en què s'executa l'aplicació.

En Linux/MacOS

export PORT=3000
export DB_HOST=localhost
export DB_USER=root
export DB_PASS=secret

En Windows

set PORT=3000
set DB_HOST=localhost
set DB_USER=root
set DB_PASS=secret

Accedir a Variables d'Entorn en Node.js

En Node.js, les variables d'entorn es poden accedir a través de l'objecte process.env.

const port = process.env.PORT || 3000;
const dbHost = process.env.DB_HOST || 'localhost';
const dbUser = process.env.DB_USER || 'root';
const dbPass = process.env.DB_PASS || 'secret';

console.log(`Server running on port ${port}`);
console.log(`Database host: ${dbHost}`);
console.log(`Database user: ${dbUser}`);

Utilitzar fitxers .env

Una pràctica comuna és utilitzar un fitxer .env per definir les variables d'entorn. Aquest fitxer es carrega en l'entorn d'execució de l'aplicació utilitzant una biblioteca com dotenv.

Instal·lació de dotenv

npm install dotenv

Crear un fitxer .env

PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASS=secret

Carregar el fitxer .env en l'aplicació

require('dotenv').config();

const port = process.env.PORT || 3000;
const dbHost = process.env.DB_HOST || 'localhost';
const dbUser = process.env.DB_USER || 'root';
const dbPass = process.env.DB_PASS || 'secret';

console.log(`Server running on port ${port}`);
console.log(`Database host: ${dbHost}`);
console.log(`Database user: ${dbUser}`);

Exercicis Pràctics

Exercici 1: Configurar i Accedir a Variables d'Entorn

  1. Crea un fitxer .env amb les següents variables:

    APP_NAME=MyNodeApp
    APP_VERSION=1.0.0
    
  2. Instal·la la biblioteca dotenv si no ho has fet ja:

    npm install dotenv
    
  3. Crea un fitxer index.js i carrega les variables d'entorn:

    require('dotenv').config();
    
    const appName = process.env.APP_NAME;
    const appVersion = process.env.APP_VERSION;
    
    console.log(`Application Name: ${appName}`);
    console.log(`Application Version: ${appVersion}`);
    
  4. Executa l'aplicació:

    node index.js
    

Exercici 2: Utilitzar Variables d'Entorn per Configurar un Servidor

  1. Crea un fitxer .env amb les següents variables:

    PORT=4000
    
  2. Crea un fitxer server.js i configura un servidor HTTP utilitzant la variable d'entorn PORT:

    require('dotenv').config();
    const http = require('http');
    
    const port = process.env.PORT || 3000;
    
    const server = http.createServer((req, res) => {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Hello, World!\n');
    });
    
    server.listen(port, () => {
        console.log(`Server running at http://localhost:${port}/`);
    });
    
  3. Executa l'aplicació:

    node server.js
    

Errors Comuns i Consells

  • Error: Variable d'entorn no definida: Assegura't que has carregat el fitxer .env correctament amb dotenv.config().
  • Error: Fitxer .env no trobat: Verifica que el fitxer .env es troba en el directori arrel del projecte.
  • Consell: No incloguis el fitxer .env en el control de versions (afegiu-lo a .gitignore) per evitar exposar informació sensible.

Conclusió

Les variables d'entorn són una eina poderosa per gestionar configuracions sensibles i específiques d'entorn en aplicacions Node.js. Utilitzant biblioteques com dotenv, podem simplificar la gestió d'aquestes variables i assegurar-nos que la nostra aplicació sigui segura i fàcil de configurar en diferents entorns.

Curs de Node.js

Mòdul 1: Introducció a Node.js

Mòdul 2: Conceptes Bàsics

Mòdul 3: Sistema de Fitxers i I/O

Mòdul 4: HTTP i Servidors Web

Mòdul 5: NPM i Gestió de Paquets

Mòdul 6: Framework Express.js

Mòdul 7: Bases de Dades i ORMs

Mòdul 8: Autenticació i Autorització

Mòdul 9: Proves i Depuració

Mòdul 10: Temes Avançats

Mòdul 11: Desplegament i DevOps

Mòdul 12: Projectes del Món Real

© Copyright 2024. Tots els drets reservats