Nœud, accepter les arguments de la ligne de commande

Comment accepter des arguments dans un programme Node.js transmis depuis la ligne de commande

Vous pouvez transmettre n'importe quel nombre d'arguments lors de l'appel d'une application Node.js à l'aide de

node app.js

Les arguments peuvent être autonomes ou avoir une clé et une valeur.

Par exemple:

node app.js flavio

ou

node app.js name=flavio

Cela change la façon dont vous récupérerez cette valeur dans le code du nœud.

La façon dont vous le récupérez utilise leprocessobjet intégré à Node.

Il expose unargvproperty, qui est un tableau contenant tous les arguments d'appel de la ligne de commande.

Le premier argument est le chemin complet dunodecommander.

Le deuxième élément est le chemin complet du fichier en cours d'exécution.

Tous les arguments supplémentaires sont présents à partir de la troisième position.

Vous pouvez parcourir tous les arguments (y compris le chemin du nœud et le chemin du fichier) en utilisant une boucle:

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

Vous ne pouvez obtenir que les arguments supplémentaires en créant un nouveau tableau qui exclut les 2 premiers paramètres:

const args = process.argv.slice(2)

Si vous avez un argument sans nom d'index, comme ceci:

node app.js flavio

vous pouvez y accéder en utilisant

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

Dans ce cas:

node app.js name=flavio

args[0]estname=flavio, et vous devez l'analyser.

La meilleure façon de le faire est d'utiliser leminimistbibliothèque, qui permet de gérer les arguments:

const args = require('minimist')(process.argv.slice(2))
args['name'] //flavio

Téléchargez mon gratuitManuel de Node.js


Plus de didacticiels sur les nœuds: