Узел, принимать аргументы из командной строки

Как принимать аргументы в программе Node.js, переданной из командной строки

Вы можете передать любое количество аргументов при вызове приложения Node.js, используя

node app.js

Аргументы могут быть автономными или иметь ключ и значение.

Например:

node app.js flavio

или же

node app.js name=flavio

Это меняет способ получения этого значения в коде узла.

Вы получаете его с помощьюprocessобъект, встроенный в Node.

Это обнажаетargvсвойство, которое представляет собой массив, содержащий все аргументы вызова командной строки.

Первый аргумент - это полный путь кnodeкоманда.

Второй элемент - это полный путь к исполняемому файлу.

Все дополнительные аргументы присутствуют с третьей позиции и далее.

Вы можете перебирать все аргументы (включая путь к узлу и путь к файлу), используя цикл:

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

Вы можете получить только дополнительные аргументы, создав новый массив, исключающий первые 2 параметра:

const args = process.argv.slice(2)

Если у вас есть один аргумент без имени индекса, например:

node app.js flavio

вы можете получить к нему доступ, используя

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

В этом случае:

node app.js name=flavio

args[0]являетсяname=flavio, и вам нужно его разобрать.

Лучший способ сделать это - использоватьminimistбиблиотека, которая помогает работать с аргументами:

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

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: