Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Sua 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.

  1. Em notes.js, substitua as duas linhas iniciais. Separe as palavras após node notes.js em comando, que é a primeira palavra, e o restante, que são todas as outras palavras.
  2. Escolha o que fazer usando uma cadeia de if, else if, else com base no comando. Cada comando imprime exatamente uma linha:
    • add imprime Adding: seguido pelo restante das palavras, unidas por espaços. node notes.js add Buy milk imprime Adding: Buy milk.
    • list imprime No 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 3 imprime Unknown command: remove, sem o 3.
  3. 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, list imprimirá 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 milk exibe Adding: Buy milk.
  • list exibe No notes yet.
  • remove 3 exibe Unknown command: remove.
  • List, com L maiúsculo, exibe Unknown command: List. JavaScript compara o texto letra por letra, incluindo letras maiúsculas, então List nã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