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"
在我的终端中写入列表 ID,而不是在我启动脚本时在我的代码中。像这样的东西:
$node test.js MyListID
代替
$node test.js
但我不知道该怎么做。
我认为这是可能的,process.argv
但minimist
我不明白它们是如何工作的。有人可以向我解释一下,还是他们有其他可能性?
解决方案
从 Node-JS v8.x文档:
process.argv 属性返回一个数组,其中包含启动 Node.js 进程时传递的命令行参数。第一个元素是 process.execPath。如果需要访问 argv[0] 的原始值,请参见 process.argv0。第二个元素是正在执行的 JavaScript 文件的路径。其余元素将是任何其他命令行参数。
因此,在您的情况下,您可以简单地执行以下操作:
getArrayEmailMembersFromMailchimpListID(process.argv[2])
当然,您应该为此添加一些错误处理以使其更加健壮。
推荐阅读
- python-3.x - 如何使用 Python 将二叉树转换为 Newick 树?
- arrays - 如何从 Node 中的外部函数返回数组
- jquery - 如何在全日历中加载 3rd 方引导程序
- c++ - 从最小堆指针问题合并节点
- google-apps-script - 如何使用刚刚在 Google Apps 脚本中编辑特定列的行的数据发送电子邮件?
- c++ - 在 Visual Studio 2019 C++ 中,如何扩展动态分配的数组以显示其所有元素?
- firebase - Vue项目中纱线更新时出错
- r - 如何只在 gglot 中留下没有空格的列?
- python - Tensorflow 与 Tensorflow Lite 的性能对比
- java - 忽略请求的Wiremock问题,除了一个