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.
Desafío
FácilTus 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.
- En
notes.js, en la ramalist, lee la variable de entornoNOTES_OWNER. - Antes de
No notes yet, imprime una línea de encabezado:Notes forseguida del nombre de la persona propietaria. CuandoNOTES_OWNERno esté establecida, usa la palabrayouen lugar de un nombre.
Con NOTES_OWNER establecida en Ada, list imprime:
Notes for Ada
No notes yetSin NOTES_OWNER, imprime:
Notes for you
No notes yetLos 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
1Ejecutar JavaScript en Node
Hola, NodeLeer el comandoArgumentos de línea de comandosComandosPractica por tu cuenta: Playground de Express