Как записать аргумент функции в терминале с помощью node js

#javascript #node.js #function #console #arguments

#javascript #node.js #функция #консоль #аргументы

Вопрос:

Я использую этот код для подключения к mailchimp API, получения списка участников и помещения всех их адресов электронной почты в массив:

 var mailchimpMarketing = require("@mailchimp/mailchimp_marketing");

mailchimpMarketing.setConfig({
  apiKey: "MY API KEY",
  server: "MY SERVER",
});


async function getArrayEmailMembersFromMailchimpListID(listID){
  const response = await mailchimpMarketing.lists.getListMembersInfo(listID);
  const emailsMailchimp = response.members.map(member => member.email_address);
  console.log(emailsMailchimp)
  return emailsMailchimp;
}
getArrayEmailMembersFromMailchimpListID("MY LIST ID")
  

Моя проблема в том, что я хочу записать идентификатор списка "MY LIST ID" в свой терминал, а не в свой код, когда я запускаю скрипт. Что-то вроде этого:

 $node test.js MyListID
  

Вместо

 $node test.js
  

Но я не знаю, как это сделать.

Я думаю, что это возможно с process.argv помощью или minimist , но я не понимаю, как они работают. Может кто-нибудь объяснить мне это или есть какая-либо другая возможность?

Комментарии:

1. Вы можете поискать модуль npm «yargs», он должен соответствовать вашему варианту использования

2. Я пытался, но я использую узел версии 8.9.4, и он доступен только на узле версии 10

3. @SamyRharade Что мешает вам обновиться?

4. Это для моей работы, и они используют эту версию, они не хотят ее менять…

Ответ №1:

Из документации Node-JS v8.x:

Процесс.свойство argv возвращает массив, содержащий аргументы командной строки, переданные при Node.js процесс был запущен. Первым элементом будет process.execPath . Смотрите process.argv0, если требуется доступ к исходному значению argv[0] . Вторым элементом будет путь к исполняемому файлу JavaScript. Остальные элементы будут любыми дополнительными аргументами командной строки.

Итак, в вашем случае вы можете просто сделать:

 getArrayEmailMembersFromMailchimpListID(process.argv[2])
  

Конечно, вы должны добавить некоторую обработку ошибок для этого, чтобы сделать его более надежным.