【问题标题】:How to write the argument of a function in the terminal with node js如何使用node js在终端中编写函数的参数
【发布时间】:2023-03-04 08:48:01
【问题描述】:

我正在使用此代码连接到 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")

我的问题是我想在我的终端中写入列表 ID "MY LIST ID",而不是在我启动脚本时在我的代码中。类似的东西:

$node test.js MyListID

代替

$node test.js

但我不知道该怎么做。

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

【问题讨论】:

  • 您可以寻找适合您用例的 npm 模块“yargs”
  • 我试过了,但我使用的是节点 v8.9.4,它只在节点 v10 上可用
  • @SamyRharade 是什么阻止你升级?
  • 这是我的工作,他们正在使用这个版本,他们不想改变它......

标签: javascript node.js function console arguments


【解决方案1】:

来自 Node-JS v8.x documentation

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

所以在你的情况下,你可以简单地做:

getArrayEmailMembersFromMailchimpListID(process.argv[2])

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

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多