Comandos
Parte da seção Fundamentos de Node.js do Journey de Node.js da Coddy. Lição 4 de 33.
A ferramenta fará várias coisas, e a primeira palavra indica qual delas.
A desestruturação pega a primeira palavra e reúne o restante em um array:
// node calc.js double 4
const [action, ...rest] = process.argv.slice(2);
if (action === 'double') {
console.log(Number(rest[0]) * 2);
}action é a primeira palavra e rest contém todas as palavras depois dela. rest.join(' ') reúne essas palavras novamente em uma única string. Uma cadeia de if e else if escolhe o que fazer. Um else final captura todas as palavras para as quais você não se preparou, incluindo erros de digitação.
Desafio
FácilSua ferramenta fará vários trabalhos, e a primeira palavra depois de node notes.js indica qual deles. Agora ela aprende dois comandos, add e list, e uma resposta para qualquer palavra que não reconheça.
- Em
notes.js, substitua as duas linhas iniciais. Separe as palavras apósnode notes.jsem comando, que é a primeira palavra, e o restante, que são todas as outras palavras. - Escolha o que fazer usando uma cadeia de
if,else if,elsecom base no comando. Cada comando imprime exatamente uma linha:addimprimeAdding:seguido pelo restante das palavras, unidas por espaços.node notes.js add Buy milkimprimeAdding: Buy milk.listimprimeNo notes yet. As notas ainda não são salvas em lugar algum; isso virá no capítulo 3.- Qualquer outra primeira palavra imprime
Unknown command:seguida apenas por essa primeira palavra.node notes.js remove 3imprimeUnknown command: remove, sem o3.
- Nada mais pode ser impresso. Se a linha da lição anterior que imprime
Adding:ficar fora da cadeia, ela será executada para todos os comandos,listimprimirá duas linhas e as verificações falharão.
Os três casos terminam normalmente, com código de saída 0. A próxima lição transforma comandos desconhecidos em erros.
Experimente: digite cada um destes no campo após $ node notes.js e pressione Enter.
add Buy milkexibeAdding: Buy milk.listexibeNo notes yet.remove 3exibeUnknown command: remove.List, com L maiúsculo, exibeUnknown command: List. JavaScript compara o texto letra por letra, incluindo letras maiúsculas, entãoListnão élist.
Experimente você mesmo
// Sua ferramenta de anotações começa aqui.
const args = process.argv.slice(2);
console.log(`Adding: ${args.slice(1).join(' ')}`);
Todas as lições de Fundamentos de Node.js
Pratique por conta própria: Playground de Express