Comandos
Parte de la sección Conceptos básicos de Node.js del Journey de Node.js de Coddy. Lección 4 de 33.
La herramienta hará varias cosas, y la primera palabra indica cuál.
La desestructuración toma la primera palabra y reúne el resto en un arreglo:
// node calc.js double 4
const [action, ...rest] = process.argv.slice(2);
if (action === 'double') {
console.log(Number(rest[0]) * 2);
}action es la primera palabra y rest contiene todas las palabras que vienen después. rest.join(' ') vuelve a juntar esas palabras en una sola cadena. Una cadena de if y else if determina qué hacer. Un else final captura todas las palabras que no habías previsto, incluidos los errores tipográficos.
Desafío
FácilTu herramienta hará varios trabajos, y la primera palabra después de node notes.js indica cuál. Ahora reconoce dos comandos, add y list, y responde a cualquier palabra que no conozca.
- En
notes.js, reemplaza las dos líneas iniciales. Divide las palabras que vienen después denode notes.jsen el comando, que es la primera palabra, y el resto, que son todas las demás palabras. - Elige qué hacer mediante una cadena de
if,else ifyelseque evalúe el comando. Cada comando imprime exactamente una línea:addimprimeAdding:seguido del resto de las palabras, unidas con espacios.node notes.js add Buy milkimprimeAdding: Buy milk.listimprimeNo notes yet. Las notas aún no se guardan en ningún sitio; eso se verá en el capítulo 3.- Cualquier otra primera palabra imprime
Unknown command:seguida solo de esa primera palabra.node notes.js remove 3imprimeUnknown command: remove, sin el3.
- No se debe imprimir nada más. Si la línea de la lección anterior que imprime
Adding:queda fuera de la cadena, se ejecuta para cada comando,listimprime dos líneas y las comprobaciones fallan.
Los tres casos terminan normalmente, con el código de salida 0. La siguiente lección convierte los comandos desconocidos en errores.
Pruébalo: escribe cada uno de estos comandos en el cuadro después de $ node notes.js y pulsa Intro.
add Buy milkmuestraAdding: Buy milk.listmuestraNo notes yet.remove 3muestraUnknown command: remove.List, con L mayúscula, muestraUnknown command: List. JavaScript compara el texto letra por letra, incluidas las mayúsculas, así queListno eslist.
Pruébalo tú mismo
// Tu herramienta de notas comienza aquí.
const args = process.argv.slice(2);
console.log(`Adding: ${args.slice(1).join(' ')}`);
Todas las lecciones de Conceptos básicos de Node.js
Practica por tu cuenta: Playground de Express