节点js指挥官参数返回true,而不是值

我想创build一个脚本与节点和节点指挥官,当我试图抓住我的参数的价值观,我得到的价值,而不是价值本身。

例如,如果我在terminal写这个:

node myfile.js -s somefile -d test var program = require('commander'); program .version('0.0.1') .option('-s, --src', 'src csv file') .option('-d, --destination', 'destination csv file') .parse(process.argv); console.log(program.src); // return true console.log(program.destination); // return true 

我如何得到这个参数的价值?

文档不是很清楚,只能通过示例来显示,但是您使用的语法( '-s, --src' )是布尔值。

如果你想要一个string,你需要这样说: '-s, --src <item>'

你需要指定这个选项需要一个参数,而且它们不仅仅是一个标志

 program .version('0.0.1') .option('-s, --src <file>', 'src csv file') .option('-d, --destination <file>', 'destination csv file') .parse(process.argv); 

如果参数是强制性的,则用<>指定。 如果它是可选的,用[]

您没有指定选项需要input。 你可以通过在你的选项定义中包含<data>[data] (如果可选)来做到这一点:

.option('-s, --src <src>', 'src csv file') .option('-d, --dest [dest]', 'destination csv file')