Skip to content

Latest commit

 

History

History
86 lines (56 loc) · 1.81 KB

File metadata and controls

86 lines (56 loc) · 1.81 KB

Node.js aceita argumentos da linha de comando

Você pode passar qualquer número de algumentos ao chamar uma aplicação Node.js usando:

node app.js

Os argumentos podem ser autônomos ou ter uma chave e um valor.

Por exemplo:

node app.js joe

ou

node app.js name=joe

Isso altera como você recuperará esse valor no código Node.js

A maneira como você o recupera é usando o objeto process integrado ao Node.js.

Ele expõe uma propriedade argv, que é uma matriz que contém todos os argumentos de chamada da linha de comando.

O primeiro elemento é a chamada do binário node.

O segundo elemento é o arquivo pelo qual estamos executando.

Todos os argumentos adicionais estão presentes a partir da terceira posição daqui para frente

Você pode iterar sobre todos os argumentos (incluindo o binário do node e o caminho do arquivo) usando um loop:

process.argv.forEach((val, index) => {
  console.log(`${index}: ${val}`);
});

Você pode obter apenas os argumentos adicionais criando uma novo array que exclui os 2 primeiros parâmetros:

const args = process.argv.slice(2);

Se você tiver um argumento sem um nome de índice, como:

node app.js joe

você pode acessá-lo usando:

const args = process.argv.slice(2);
args[0];

Nesse caso:

node app.js name=joe

args[0] é name=joe, e você precisa passá-lo. a melhor forma de fazer isso é usando a biblioteca minimist, que ajuda a lidar com argumentos:

const args = require('minimist')(process.argv.slice(2));

args.name; // joe

Instale o pacote minimist necessário usando npm (a lição sobre o gerenciador de pacotes vem mais tarde).

npm install minimist

Desta vez, você precisa usar traços duplos antes de cada nome do argumento:

node app.js --name=joe