首页 > 解决方案 > 如何使用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"在我的终端中写入列表 ID,而不是在我启动脚本时在我的代码中。像这样的东西:

$node test.js MyListID

代替

$node test.js

但我不知道该怎么做。

我认为这是可能的,process.argvminimist我不明白它们是如何工作的。有人可以向我解释一下,还是他们有其他可能性?

标签: javascriptnode.jsfunctionconsolearguments

解决方案


从 Node-JS v8.x文档

process.argv 属性返回一个数组,其中包含启动 Node.js 进程时传递的命令行参数。第一个元素是 process.execPath。如果需要访问 argv[0] 的原始值,请参见 process.argv0。第二个元素是正在执行的 JavaScript 文件的路径。其余元素将是任何其他命令行参数。

因此,在您的情况下,您可以简单地执行以下操作:

getArrayEmailMembersFromMailchimpListID(process.argv[2])

当然,您应该为此添加一些错误处理以使其更加健壮。


推荐阅读