Рубрики
Без рубрики

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

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

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

node app.js

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

Например:

node app.js flavio

или

node app.js name=flavio

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

Способ его извлечения заключается в использовании объекта process , встроенного в узел.

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

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

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

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

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

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

аргументы[0] – это имя=флавио , и вам нужно его разобрать.

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

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

Оригинал: “https://flaviocopes.com/node-cli-args/”