Menu
CoddyTech

Variables de entorno

Parte de la sección Conceptos básicos de Node.js del Journey de Node.js de Coddy. Lección 6 de 33.

Algunas configuraciones pertenecen a la persona que ejecuta un programa, no a las palabras que escribe después.

Las variables de entorno son cadenas con nombre que el shell entrega a cada programa. Node las coloca en process.env. Una variable no definida es undefined. a ?? b devuelve a, a menos que a sea undefined o null; después devuelve b. Así que process.env.CITY ?? 'Lisbon' es 'Lisbon' cuando CITY no está definida.

// CITY=Oslo node weather.js
const city = process.env.CITY ?? 'Lisbon';
console.log(`Weather for ${city}`);

En una computadora portátil puedes definir una para una sola ejecución escribiéndola antes del comando: CITY=Oslo node weather.js imprime Weather for Oslo, y node weather.js sin más imprime Lisbon. Los nombres distinguen entre mayúsculas y minúsculas. La terminal junto a tu código no define ninguna variable, así que siempre muestra el valor predeterminado.

challenge icon

Desafío

Fácil

Tus notas deben indicar a quién pertenecen. El nombre proviene de una variable de entorno, un ajuste con nombre que el shell le pasa al programa, no de las palabras escritas después del comando.

  1. En notes.js, en la rama list, lee la variable de entorno NOTES_OWNER.
  2. Antes de No notes yet, imprime una línea de encabezado: Notes for seguida del nombre de la persona propietaria. Cuando NOTES_OWNER no esté establecida, usa la palabra you en lugar de un nombre.

Con NOTES_OWNER establecida en Ada, list imprime:

Notes for Ada
No notes yet

Sin NOTES_OWNER, imprime:

Notes for you
No notes yet

Los demás comandos no cambian.

Pruébalo: escribe list en el cuadro después de $ node notes.js y presiona Enter. Verás Notes for you, después No notes yet. Este terminal no puede establecer variables de entorno, así que siempre verás you. Cuando presionas «Comprobar», las comprobaciones también ejecutan list con NOTES_OWNER establecida en Ada y en Grace, y esperan Notes for Ada y Notes for Grace. En una laptop podrías probarlo con NOTES_OWNER=Ada node notes.js list.

Pruébalo tú mismo

// Tu herramienta de notas comienza aquí.
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');

if (command === 'add') {
    console.log(`Adding: ${text}`);
} else if (command === 'list') {
    console.log('No notes yet');
} else {
    if (command) {
        console.error(`Unknown command: ${command}`);
    }
    console.error('Usage: node notes.js <command> [words]');
    process.exit(1);
}

Todas las lecciones de Conceptos básicos de Node.js

Practica por tu cuenta: Playground de Express