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; // joeInstale 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